Error en Guarani3w - Ideas ??

Buenos dias, desde el lunes estamos con problemas con el uso de el sitio Guarani3w, las inscripciones concurrentes de los alumnos, impiden que se cargue el sitio correctamente y nos muestra el cartel: " Error -406 Memory allocation failed".
Tenemos 3 facultades operativas en Informix 9.21 y la aplicacion Windows anda perfectamente.
Con las configuraciones actuales no tuvimos grandes problemas en inscripciones anteriores, pero siempre limitando el numero de conexiones al servidor web.
Agradecemos cualquier ayuda urgente.
Muchas gracias.

Podes informar las caracteristicas del servidor de informix?
En que version de Guarani estan? Por favor informen siempre este dato.

Podes adjuntar el archivo onconfig para revisar la configuración del motor?

Como es la conexion de la aplicación web al informix? Driver Nativo, odbc, … Estan en el mismo servidor o diferentes servidores?

La version de Guarani que estamos usando es 2.6.4. Motor Informix es version 9.21. El guarani 3w se conecta con driver nativo. Sospechamos que el error puede venir al conectarse la aplicacion web con el servidor. Porque el mismo usuario se conecta perfectamente desde la aplicacion windows.
Estamos utilizando el guarani3w con esta configuracion desde hace 3 años y jamas habiamos tenido este problema. Tenemos paralizada la inscrpcion y las autoridades nos exigen una pronta respuiesta.
Te adjunto la informacion del Onconfig

#**************************************************************************

INFORMIX SOFTWARE, INC.

Title: onconfig.std

Description: Informix Dynamic Server Configuration Parameters

#**************************************************************************

Root Dbspace Configuration

ROOTNAME rootdbs # Root dbspace name

ROOTPATH E:\IFMXDATA\ol_guarani\rootdbs_dat.000

                            # Path for device containing root dbspace

ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)

ROOTSIZE 2000000 # Size of root dbspace (Kbytes)

Disk Mirroring Configuration Parameters

MIRROR 0 # Mirroring flag (Yes = 1, No = 0)

MIRRORPATH # Path for device containing mirrored root

MIRROROFFSET 0 # Offset into mirrored device (Kbytes)

Physical Log Configuration

PHYSDBS rootdbs # Location (dbspace) of physical log

PHYSFILE 199788 # Physical log file size (Kbytes)

Logical Log Configuration

LOGFILES 20 # Number of logical log files

LOGSIZE 40000 # Logical log size (Kbytes)

LOG_BACKUP_MODE MANUAL # Logical log backup mode (MANUAL, CONT)

Diagnostics

MSGPATH C:\Informix\ol_guarani.log # System message log file path

CONSOLE C:\Informix\conol_guarani.log # System console message path

To automatically backup logical logs, edit alarmprogram.bat and set

BACKUPLOGS=Y

ALARMPROGRAM C:\Informix\etc\alarmprogram.bat # Alarm program path

TBLSPACE_STATS 1 # Maintain tblspace statistics

System Diagnostic Script.

SYSALARMPROGRAM - Full path of the system diagnostic script (e.g.

c:\informix\etc\evidence.bat.) Set this parameter

if you want a different Diagnostic Script than

{INFORMIXDIR}\etc\evidence.bat, which is default.

System Archive Tape Device

TAPEDEV D:\IFMXBCKP\backup.bak # Tape device path

TAPEBLK 64 # Tape block size (Kbytes)

TAPESIZE 1000000 # Maximum amount of data to put on tape (Kbytes)

Log Archive Tape Device

LTAPEDEV D:\IFMXBCKP\log.bak # Log tape device path

LTAPEBLK 16 # Log tape block size (Kbytes)

LTAPESIZE 1000000 # Max amount of data to put on log tape (Kbytes)

Optical

STAGEBLOB # Informix Dynamic Server/Optical staging area

OPTICAL_LIB_PATH # Location of Optical Subsystem driver DLL

System Configuration

SERVERNUM 0 # Unique id corresponding to a server instance

DBSERVERNAME ol_guarani # Name of default Dynamic Server

DBSERVERALIASES # List of alternate dbservernames

NETTYPE soctcp,4,300,NET # Override sqlhosts nettype parameters

DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.

RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)

MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor

NUMCPUVPS 4 # Number of user (cpu) vps

SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one

NOAGE 0 # Process aging

AFF_SPROC 0 # Affinity start processor

AFF_NPROCS 0 # Affinity number of processors

Shared Memory Parameters

LOCKS 30000 # Maximum number of locks

BUFFERS 160000 # Maximum number of shared buffers

NUMAIOVPS 4 # Number of IO vps

PHYSBUFF 64 # Physical log buffer size (Kbytes)

LOGBUFF 64 # Logical log buffer size (Kbytes)

CLEANERS 2 # Number of buffer cleaner processes

SHMBASE 0xc000000 # Shared memory base address

SHMVIRTSIZE 262144 # initial virtual shared memory segment size

SHMADD 32768 # Size of new shared memory segments (Kbytes)

SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited

CKPTINTVL 300 # Check point interval (in sec)

LRUS 8 # Number of LRU queues

LRU_MAX_DIRTY 70.000000 # LRU percent dirty begin cleaning limit

LRU_MIN_DIRTY 10.000000 # LRU percent dirty end cleaning limit

TXTIMEOUT 0x12c # Transaction timeout (in sec)

STACKSIZE 64 # Stack size (Kbytes)

Dynamic Logging

DYNAMIC_LOGS:

2 : server automatically add a new logical log when necessary. (ON)

1 : notify DBA to add new logical logs when necessary. (ON)

0 : cannot add logical log on the fly. (OFF)

When dynamic logging is on, we can have higher values for LTXHWM/LTXEHWM,

because the server can add new logical logs during long transaction rollback.

However, to limit the number of new logical logs being added, LTXHWM/LTXEHWM

can be set to smaller values.

If dynamic logging is off, LTXHWM/LTXEHWM need to be set to smaller values

to avoid long transaction rollback hanging the server due to lack of logical

log space, i.e. 50/60 or lower.

DYNAMIC_LOGS 0

LTXHWM 70

LTXEHWM 80

System Page Size

BUFFSIZE - Dynamic Server no longer supports this configuration parameter.

To determine the page size used by Dynamic Server on your platform

see the last line of output from the command, ‘onstat -b’.

Recovery Variables

OFF_RECVRY_THREADS:

Number of parallel worker threads during fast recovery or an offline restore.

ON_RECVRY_THREADS:

Number of parallel worker threads during an online restore.

OFF_RECVRY_THREADS 10 # Default number of offline worker threads

ON_RECVRY_THREADS 1 # Default number of online worker threads

Data Replication Variables

DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)

DRTIMEOUT 30 # DR network timeout (in sec)

DRLOSTFOUND \tmp # DR lost+found file path

CDR Variables

CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)

CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)

CDR_QUEUEMEM 4096 # Maximum memory for any CDR queue (Kbytes)

CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)

CDR_QDATA_SBSPACE # CDR queue smart blob space

CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)

Backup/Restore variables

BAR_ACT_LOG C:\Informix\bar_ol_guarani.log #Path of log file for onbar.exe

BAR_MAX_BACKUP 0

BAR_RETRY 1

BAR_NB_XPORT_COUNT 10

BAR_XFER_BUF_SIZE 15

BAR_BSALIB_PATH C:\ISM\2.20\bin\libbsa.dll # Location of ISM XBSA DLL

RESTARTABLE_RESTORE on #To support restartable restore…values on/off

Informix Storage Manager variables

ISM_DATA_POOL ISMData

ISM_LOG_POOL ISMLogs

Read Ahead Variables

RA_PAGES 8 # Number of pages to attempt to read ahead

RA_THRESHOLD 4 # Number of pages left before next group

DBSPACETEMP:

Dynamic Server equivalent of DBTEMP for SE. This is the list of dbspaces

that the Dynamic Server SQL Engine will use to create temp tables etc.

If specified it must be a colon separated list of dbspaces that exist

when the Dynamic Server system is brought online. If not specified, or if

all dbspaces specified are invalid, various ad hoc queries will create

temporary files in /tmp instead.

DBSPACETEMP temp_dbs # Default temp dbspaces

DUMP*:

The following parameters control the type of diagnostics information which

is preserved when an unanticipated error condition (assertion failure) occurs

during Dynamic Server operations.

For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.

DUMPDIR C:\tmp # Preserve diagnostics in this directory

DUMPSHMEM 1 # Dump a copy of shared memory

DUMPGCORE 0 # Dump a core image using ‘gcore’

DUMPCORE 0 # Dump a core image (Warning:this aborts Dynamic

DUMPCNT 1 # Number of shared memory or gcore dumps for

                    # a single user's session

FILLFACTOR 90 # Fill factor for building indexes

method for Dynamic Server to use when determining current time

USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)

Parallel Database Queries (pdq)

MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority

DS_MAX_QUERIES 32 # Maximum number of decision support queries

DS_TOTAL_MEMORY 4096 # Decision support memory (Kbytes)

DS_MAX_SCANS 1048576 # Maximum number of decision support scans

DATASKIP off # List of dbspaces to skip

OPTCOMPIND

0 => Nested loop joins will be preferred (where

possible) over sortmerge joins and hash joins.

1 => If the transaction isolation mode is not

“repeatable read”, optimizer behaves as in (2)

below. Otherwise it behaves as in (0) above.

2 => Use costs regardless of the transaction isolation

mode. Nested loop joins are not necessarily

preferred. Optimizer bases its decision purely

on costs.

OPTCOMPIND 2 # To hint the optimizer

DIRECTIVES 1 # Optimizer DIRECTIVES ON (1/Default) or OFF (0)

ONDBSPACEDOWN 1 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT

OPCACHEMAX 0 # Maximum optical cache size (Kbytes)

HETERO_COMMIT (Gateway participation in distributed transactions)

1 => Heterogeneous Commit is enabled

0 (or any other value) => Heterogeneous Commit is disabled

HETERO_COMMIT 0

SBSPACENAME sbspace # Default sbspace

BLOCKTIMEOUT 3600 # Default timeout for system block

Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS

OPT_GOAL -1

ALLOW_NEWLINE 0 # embedded newlines(Yes = 1, No = 0 or anything but 1)

SYSSBSPACENAME sbspace # Default System sbspace

The following are default settings for enabling Java in the database.

#VPCLASS jvp,num=1 # Number of JVPs to start with

JVPJAVAHOME C:\Informix\extend\krakatoa\jre

                            # JDK installation root directory

JVPHOME C:\Informix\extend\krakatoa # Krakatoa installation directory

JVPLOGFILE C:\Informix\extend\krakatoa\ol_guarani_jvp.log # VP log file

JVPPROPFILE C:\Informix\extend\krakatoa.jvpprops_ol_guarani

                            # JVP property file

JDKVERSION 1.3 # JDK version supported by this server

The path to the JRE libraries relative to JVPJAVAHOME

JVPJAVALIB \bin\

JVPJAVAVM hpi;server;verify;java;net;zip;jpeg

Classpath to use upon Java VM start-up (use _g version for debugging)

JVPCLASSPATH C:\Informix\extend\krakatoa\krakatoa.jar;C:\Informix\extend\krakatoa\jdbc.jar

Hola

Estuvimos revisando la configuracion. Hay varios parametros que no tienen valores adecuados, sin embargo muchos de ellos no tienen relacion aparente con el error.

En primer lugar, cuanta RAM fisica tiene el servidor windows de Informix ? podrias mirar con el task manager cuanta memoria hay libre ?, o sea pasanos memoria total y memoria libre

Si el problema es que tiene poca memoria libre se podria liberar algo de memoria bajando el parametro BUFFERS, hoy lo tenes en 160000 y eso te consume 655 MB de RAM, ojo que bajarlo tiene su costo en performance, pero si necesitamos liberar memoria habria que probar poniendolo en 60000

Otros parametros que tienen valores que hay que corregir son:

  1. LRU_MIN Y LRU_MAX deberias ponerlos en valores mas bajos, tipo 5 y 10 respectivamente.

Estos parametros
LTXHWM 70
LTXEHWM 80
pasalos a
LTXHWM 40
LTXEHWM 50
3) LOCKS de 30000 pasalo a 60000
4) BUFFERS ya te comente de bajarlo (siempre que haya poca memoria libre)

La version de Informix es 9.21 ?

Tambien por favor mandanos el log de Informix (C:\Informix\ol_guarani.log), el log de apache, y la salida de un onstat -a

Tambien deberian pensar en actualizar la version de Guarani a 2.7.0/2.8.0

saludos
Ignacio

Hola Ignacio, probamos los cambios y sigue sin andar.
Te paso el adjunto con los archivos.
-Este es el link de una de las facultades que tenemos online:
http://alumnosweb.mdp.edu.ar/ArquiFinal/inicial.php
-La version de Informix que usamos es 9.41 (no la 9.21)
-Tenemos instalado el servicio web en iis6
Sospechamos que el problema esta con las conexiones concurrentes al sitio web con el usuario internet, porque el mismo desde la aplicacion windows se conecta perfectamente.
La prueba que realizamos es bajar todos los sitios y todas las conexiones y cuando levanta el servicio dura muy poco online porque los alumnos saturan la conexion rapidamente hasta tirar el mensaje de :Mensaje
Error Inicial del Sistema
-406 Memory allocation failed.

Espero tu respuesta.
Muchas Gracias
Pablo Intaschi


ol_guarani.log.txt (1.59 KB)

onstat -a.txt (559 KB)

¿Tienen encuestas activas? Te lo consulto por esto que se discutió en este otro post: http://foro.comunidad.siu.edu.ar/index.php?topic=4845.msg19395
http://foro.comunidad.siu.edu.ar/index.php?topic=3145.msg11506

Podes enviar el archivo ol_guarani.log que contenga la info de ayer y hoy? Solo se ve desde las 13hs de hoy.

Tambien no olvides de decirnos cuanta memoria ram tiene el equipo.

Buenos dias, les detallo un poco mas el problema, nuestro server web tiene corriendo sitios
.net + sql server (desarrollos propios)
php + postgres (ingreso guarani)
php + informix (guarani 3w)

Cuando experimentamos muchas conexiones por un periodo de inscripcion, el guarani 3w es el unico sitio que deja funcionar y los demas sitios funcionan perfectamente.

El servidor de BD sigue funcionando perfectamente porque la aplicacion windows guarani se puede usar y conectarse con el sql editor para realizar consultas.

La unica solucion parcial que encontramos es reiniciar el server web.

El servidor de bd tiene 4gb de ram y porcesador xeon de 4 nucleos

Adjunto el archivo ol_guarani.log

Slaudos.


ol_guarani.log.txt (70.4 KB)

Hola Pablo,

Insisto con la pregunta que hizo Alejandro que puede ser una posibilidad.

En Guaraní tienen encuestas activas que deben contestar los alumnos? O no utilizan el módulo de encuestas del sistema?

Saludos,
Guillermo

Hola,

Sigan con la sugerencia de Ale Delu. sin embargo, como para descartar: Se podria verficar cuanta memoria libre tiene el server cuando esta todo levantado?.

Tendrian que ir al TASK Manager y fijarse cuanta memoria LIbre hay antes de que se produzca el error. Si hubiera poca memoria libre, esa puede ser la causa del error 406. En ese caso podriamos cambiar el valor del parametro BUFFERS de Informix de 160000 a 50000, este cambio va a liberar medio Gb aprox.

saludos
Ignacio

Perdon me olvide de mencionar lo de la encuesta, nosotros usamos el modulo del guarani, pero actulamente no estan activas en ninguna de las facultades.
En cuanto a la memoria ram el server de bd esta bien nunca se llena, el procesador a veces se plancha pero no es la memoria el problema creo.

Saludos.

Pablo:

No pueden pasar pasar a la versión 2.7 aunque sea en una maquina de pruebas? Me huele que el problema es el tema de las encuestas como pasó en otras UUNN y eso se arregla en la versión 2.7.

Ya hay una mejora en la 2.6.4 parche 3 o lo que es lo mismo versión 2.6.5, pero en la 2.7 está optimizado todo este tema.

Entiendo que hay un servidor para todo lo que es Web y el serevidor Informix está en otro equipo o VM.

Saludos

Gustavo

Buenas tardes, les comento unas prueba que realizamos para despejar errores de hardware y fue correr todos los sitios web de la Universidad en una maquina virtual nueva y los errores de performance se mantienen.
Todos los sitios web de la Preinscripcion funcionan perfectamente y los sitios que son desarrollos propios en .net tambien.
Los sitios del Guarani responden extremadamente lentos y a la vez perjudican el desempeño de los demás sitios web, actualmente, no podemos tenerlos en produccion porque no dejan acceder al resto de los sitios.
Todo estos errores de performance son tan aleatorios como raros y andaba bien en el primer cuatrimestre y esta semana de a ratos reacciona y se pueden usar.
Contemplamos el cambio de las version 2.6.4 , pero es algo que venia funcionando bien y no se cambio nada mas alla de los parametros en olguarani sugerido arriba en los mensajes previos.
Alguna sugerencia?
Muchas Gracias.
Pablo.

Pablo:

Ya se te hicieron sugerencias y parece que no las tomaras en cuenta, no es lógico pedir más sugerencias si no tenés en cuenta las que se te dicen.

Hacé la prueba de pasar en una base de pruebas )o en producción previo backup si querés) a la versión 2.7 (puede ser en el mismo servidor o en otro).

Aunque ustedes no hayan cambiado nada, el SIU si cambió muchas cosas entre una versión y otra y los cambios apuntaban justamente a mejorar el tema de la performance en la Web. Si en esa versión también tienen problemas, recién en ese momento tiene sentido ver otras causas y sugerencias.

Saludos

Gustavo