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:
- 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