Perdon Pablo, no habia visto el onconfig, hay bastante por hacer sobre este archivo, pero comencemos por algo que puede mejorar rapidamente :
Copio el ONCONFIG y lo vemos directamente aca, te escribo en azul como deberian quedar algunos valores, y en rojo como estan actualmente:
Para hacer estos cambios deben poner off-line la instancia, realizar los cambios en el onconfig y volver a levantar la instancia (comando oninit -v)
Estan muy bajos los valores de la memoria virtual, los lockeos y el espacio libre disponible del rootdbspace. Creo que haciendo estos cambios van a notar una gran diferencia. Lo mismo de que no esta haciendo uso de todos los procesadores que tiene el server.
Si con los cambios en SHMVIRTSIZE no levanta el motor, prueben en vez de 256mb, con 128mb).
Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /dbspaces/rootdbs # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 30000 # Size of root dbspace (Kbytes)
Este es muy poco espacio del rootdbspace. Ya que el motor usa lo que queda libre de este dbspace para temas temporales en creaciones de indices, tablas temporales, etc.
Vean de agregar un chunk de 2gb a este dbspce.
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 dbs_phy # Location (dbspace) of physical log
PHYSFILE 49946 # Physical log file size (Kbytes)
Logical Log Configuration
LOGFILES 29 # Number of logical log files
LOGSIZE 2000 # Logical log size (Kbytes)
LOG_BACKUP_MODE MANUAL # Logical log backup mode (MANUAL, CONT)
Debería estar en continuo (CONT). Para que cuando se llene cada logical logs de esos 29 se realice backup automatico.Por lo que veo ahora esta en NULL (Parámetro LTAPEDEV)
Security
DBCREATE_PERMISSION:
By default any user can create a database. Uncomment DBCREATE_PERMISSON to
limit database creation to a specific user. Add a new DBCREATE_PERMISSION
line for each permitted user.
#DBCREATE_PERMISSION informix
IFX_EXTEND_ROLE:
0 => Disable use of EXTEND role to control who can register
external routines. This is the default behaviour.
1 => Enable use of EXTEND role to control who can register
external routines.
IFX_EXTEND_ROLE 0 # To control the usage of EXTEND role.
Tablespace Tablespace Configuration in Root Dbspace
TBLTBLFIRST 0 # First extent size (Kbytes) (0 = default)
TBLTBLNEXT 0 # Next extent size (Kbytes) (0 = default)
Diagnostics
MSGPATH /opt/informix/online.log # System message log file path
CONSOLE /dev/console # System console message path
To automatically backup logical logs, edit alarmprogram.sh and set
BACKUPLOGS=Y
ALARMPROGRAM /usr/informix/etc/alarmprogram.sh # Alarm program path
#ALARMPROGRAM /usr/informix/etc/no_log.sh # Alarm program path
ALRM_ALL_EVENTS 0 # Triggers ALARMPROGRAM for any event occur
TBLSPACE_STATS 1 # Maintain tblspace statistics
System Archive Tape Device
TAPEDEV /dev/null # Tape device path
TAPEBLK 32 # Tape block size (Kbytes)
TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)
Log Archive Tape Device
LTAPEDEV /dev/null # Log tape device path
LTAPEBLK 32 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)
Deberian crear un archivo donde hacer backup de los logical logs si quieren tener el los y amplicar ese tamaño del archivo al espacio maximo que tenga el disco donde vayan a hacer backup.
Pueden serguir dejandolo en null (LTAPEDEV /dev/null) lo mismo que el TAPEDEV, pero en algun momento luego que superen este tema de la performance es configurar bien este tema de los backups.
Optical
STAGEBLOB # Informix Dynamic Server staging area
System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME ol_hitaliano # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
Configure poll thread(s) for nettype
NETTYPE soctcp,4,90,NET
NETTYPE ipcshm,4,90,CPU
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi-processor
Si el servidor tiene mas de un procesador, aqui deberia tener el valor 1
NUMCPUVPS 1 # Number of user (cpu) vps
Este valor deben cambiarlo por la cantidad de procesadores disponibles:
Ver: https://www.ibm.com/support/knowledgecenter/en/SSGU8G_11.50.0/com.ibm.perf.doc/ids_prf_091.htm
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 2000 # Maximum number of locks
Aumentar este valor a 50000:
LOCKS 50000
NUMAIOVPS # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 1 # Number of buffer cleaner processes
SHMBASE 0x44000000L # Shared memory base address
SHMVIRTSIZE 8192 # initial virtual shared memory segment size
Ampliar este valor a 256mb
SHMVIRTSIZE 262144
SHMADD 8192 # Size of new shared memory segments (Kbytes)
Ampliar este valor a 64mb
SHMADD 65536
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
TXTIMEOUT 300 # Transaction timeout (in sec)
STACKSIZE 32 # 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.
In case of system configured with CDR, the difference between LTXHWM and
LTXEHWM should be atleast 30% so that we could minimize log overrun issue.
DYNAMIC_LOGS 2
LTXHWM 70
LTXEHWM 80
System Page Size
BUFFSIZE - OnLine no longer supports this configuration parameter.
To determine the page size used by OnLine 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
DRAUTO: 0 manual, 1 retain type, 2 reverse type
DRAUTO 0 # DR automatic switchover
DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 30 # DR network timeout (in sec)
DRLOSTFOUND /usr/informix/etc/dr.lostfound # DR lost+found file path
DRIDXAUTO 0 # DR automatic index repair. 0=off, 1=on
CDR Variables
CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)
CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
CDR_SERIAL 0 # Serial Column Sequence
CDR_DBSPACE # dbspace for syscdr database
CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)
CDR_QDATA_SBSPACE # List of CDR queue smart blob spaces
CDR_MAX_DYNAMIC_LOGS
-1 => unlimited
0 => disable dynamic log addition
>0 => limit the no. of dynamic log additions with the specified value.
Max dynamic log requests that CDR can make within one server session.
CDR_MAX_DYNAMIC_LOGS 0 # Dynamic log addition disabled by default
Backup/Restore variables
BAR_ACT_LOG /usr/informix/bar_act.log # ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /usr/informix/bar_dbug.log # ON-Bar Debug Log - not in /tmp please
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 20
BAR_XFER_BUF_SIZE 31
RESTARTABLE_RESTORE ON
BAR_PROGRESS_FREQ 0
Informix Storage Manager variables
ISM_DATA_POOL ISMData
ISM_LOG_POOL ISMLogs
Read Ahead Variables
RA_PAGES # Number of pages to attempt to read ahead
RA_THRESHOLD # Number of pages left before next group
DBSPACETEMP:
OnLine equivalent of DBTEMP for SE. This is the list of dbspaces
that the OnLine SQL Engine will use to create temp tables etc.
If specified it must be a colon separated list of dbspaces that exist
when the OnLine 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 dbs_tmp # Default temp dbspaces
Verifiquen que el dbspace temporal “dbs_tmp” este online.
Corran el comando: onstat -d
Podran ver si el dbspace temporal dbs_tmp esta siendo utilizado
DUMP*:
The following parameters control the type of diagnostics information which
is preserved when an unanticipated error condition (assertion failure) occurs
during OnLine operations.
For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.
DUMPDIR /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 OnLine)
DUMPCNT 1 # Number of shared memory or gcore dumps for
# a single user’s session
FILLFACTOR 90 # Fill factor for building indexes
method for OnLine 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 # Maximum number of decision support queries
DS_TOTAL_MEMORY # Decision support memory (Kbytes)
DS_MAX_SCANS 1048576 # Maximum number of decision support scans
DS_NONPDQ_QUERY_MEM 128 # Non PDQ query memory (Kbytes)
DATASKIP # 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 2 # 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 # Default smartblob space name - this is where blobs
# go if no sbspace is specified when the smartblob is
# created. It is also used by some datablades as
# the location to put their smartblobs.
SYSSBSPACENAME # Default smartblob space for use by the Informix
# Server. This is used primarily for Informix Server
# system statistics collection.
BLOCKTIMEOUT 3600 # Default timeout for system block
SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Alarm program path
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)
#Create Index Online Shared Memory usage limitation
ONLIDX_MAXMEM 5120 # Per pool per index (Kbytes)
#Timeout for client connection request
LISTEN_TIMEOUT 10 # Timeout (in Seconds)
#Following are the deprecated configuration parameters, instead of these
#use BUFFERPOOL configuration parameter
#BUFFERS, LRUS, LRU_MIN_DIRTY, LRU_MAX_DIRTY
The following are default settings for enabling Java in the database.
Replace all occurrences of /usr/informix with the value of $INFORMIXDIR.
#VPCLASS jvp,num=1 # Number of JVPs to start with
JVPJAVAHOME /usr/informix/extend/krakatoa/jre # JRE installation root directory
JVPHOME /usr/informix/extend/krakatoa # Krakatoa installation directory
JVPPROPFILE /usr/informix/extend/krakatoa/.jvpprops # JVP property file
JVPLOGFILE /usr/informix/jvp.log # JVP log file.
JDKVERSION 1.3 # JDK version supported by this server
The path to the JRE libraries relative to JVPJAVAHOME
JVPJAVALIB /bin
The JRE libraries to use for the Java VM
JVPJAVAVM jsig:hpi:jvm:java:net:zip:jpeg
use JVPARGS to change Java VM configuration
#To display jni call
#JVPARGS -verbose:jni
Classpath to use upon Java VM start-up (use _g version for debugging)
#JVPCLASSPATH /usr/informix/extend/krakatoa/krakatoa_g.jar:/usr/informix/extend/krakatoa/jdbc_g.jar
JVPCLASSPATH /usr/informix/extend/krakatoa/krakatoa.jar:/usr/informix/extend/krakatoa/jdbc.jar
The following parameters are related to the buffer pool
BUFFERPOOL default,buffers=1000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000
BUFFERPOOL size=2K,buffers=1000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000