Good day,
We have problem with full checkpoints on Informix DB.
Sometimes checkpoints are more then 6 sec.
Please help me to reslove problem.
Please see below oconfig file and output from onstat -F command.
oconfig
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.std
# Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdb # Root dbspace name
ROOTPATH /dev/rrootdb # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 131072 # 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 plog # Location (dbspace) of physical log
PHYSFILE 16000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 785 # Number of logical log files
LOGSIZE 1024 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /ctxtools/informix/online.log # System message log file path
CONSOLE /dev/null # System console message path
ALARMPROGRAM /ctxtools/informix/etc/log_full.sh # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics
# System Archive Tape Device
TAPEDEV /ctxtools/informix/devices/tape # Tape device path
#TAPEBLK 16 # Tape block size (Kbytes)
TAPEBLK 32768
TAPESIZE 20971520 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /ctxtools/informix/devices/ltape # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 104857600 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME cortex_online # Name of default database server
DBSERVERALIASES cortex_local # List of alternate dbservernames
NETTYPE soctcp,8,128,NET # Configure poll thread(s) for nettype
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 1 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 1000000 # Maximum number of locks
#BUFFERS 131072 # Maximum number of shared buffers
BUFFERS 65536
NUMAIOVPS # Number of IO vps
PHYSBUFF 64 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 128 # Number of buffer cleaner processes
SHMBASE 0x30000000 # Shared memory base address
#SHMVIRTSIZE 131072 # initial virtual shared memory segment size
SHMVIRTSIZE 1048676
#SHMADD 65536 # Size of new shared memory segments (Kbytes)
SHMADD 262144
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 30 # Check point interval (in sec)
LRUS 128 # Number of LRU queues
LRU_MAX_DIRTY 1 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 0 # LRU percent dirty end cleaning limit
TXTIMEOUT 0xa # Transaction timeout (in sec)
STACKSIZE 32
NOFUZZYCKPT 1
# 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 50
LTXEHWM 60
# 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 10 # Default number of online worker threads
# Data Replication Variables
DRINTERVAL 0 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 15 # DR network timeout (in sec)
DRLOSTFOUND /ctxtools/informix/etc/dr.lostfound # 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 amount of memory for any CDR queue (Kbytes)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
CDR_SERIAL 0,0 # Serial Column Sequence
CDR_DBSPACE # dbspace for syscdr database
CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)
CDR_QDATA_SBSPACE # CDR queue smart blob space
CDR_QDATA_SBFLAGS 0 # Log/no-log (default no log)
# Backup/Restore variables
BAR_ACT_LOG /ctxtools/informix/bar_act.log
# ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /ctxtools/informix/bar_dbug.log
# ON-Bar Debug Log - not in /tmp please
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
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 tempdb # 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 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 1 # 0: use internal time(fast), 1: get time from OS(slow)
# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 20 # Maximum allowed pdqpriority
DS_MAX_QUERIES 1000 # Maximum number of decision support queries
DS_TOTAL_MEMORY # 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 0 # 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 1
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 /ctxtools/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)
#
# 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 /ctxtools/informix/extend/krakatoa/jre
# JRE installation root directory
JVPHOME /ctxtools/informix/extend/krakatoa
# Krakatoa installation directory
JVPPROPFILE /ctxtools/informix/extend/krakatoa/.jvpprops # JVP property file
JVPLOGFILE /ctxtools/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 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
onstat -F
Fg Writes LRU Writes Chunk Writes
0 37681152 29571184
address flusher state data
5013b618 0 I 0 = 0X0
5013bc18 1 I 0 = 0X0
5013c218 2 I 0 = 0X0
5013c818 3 I 0 = 0X0
5013ce18 4 I 0 = 0X0
5013d418 5 I 0 = 0X0
5013da18 6 I 0 = 0X0
5013e018 7 I 0 = 0X0
5013e618 8 I 0 = 0X0
5013ec18 9 I 0 = 0X0
5013f218 10 I 0 = 0X0
5013f818 11 I 0 = 0X0
states: Exit Idle Chunk Lru
We have problem with full checkpoints on Informix DB.
Sometimes checkpoints are more then 6 sec.
Please help me to reslove problem.
Please see below oconfig file and output from onstat -F command.
oconfig
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.std
# Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdb # Root dbspace name
ROOTPATH /dev/rrootdb # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 131072 # 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 plog # Location (dbspace) of physical log
PHYSFILE 16000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 785 # Number of logical log files
LOGSIZE 1024 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /ctxtools/informix/online.log # System message log file path
CONSOLE /dev/null # System console message path
ALARMPROGRAM /ctxtools/informix/etc/log_full.sh # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics
# System Archive Tape Device
TAPEDEV /ctxtools/informix/devices/tape # Tape device path
#TAPEBLK 16 # Tape block size (Kbytes)
TAPEBLK 32768
TAPESIZE 20971520 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /ctxtools/informix/devices/ltape # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 104857600 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME cortex_online # Name of default database server
DBSERVERALIASES cortex_local # List of alternate dbservernames
NETTYPE soctcp,8,128,NET # Configure poll thread(s) for nettype
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 1 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 1000000 # Maximum number of locks
#BUFFERS 131072 # Maximum number of shared buffers
BUFFERS 65536
NUMAIOVPS # Number of IO vps
PHYSBUFF 64 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 128 # Number of buffer cleaner processes
SHMBASE 0x30000000 # Shared memory base address
#SHMVIRTSIZE 131072 # initial virtual shared memory segment size
SHMVIRTSIZE 1048676
#SHMADD 65536 # Size of new shared memory segments (Kbytes)
SHMADD 262144
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 30 # Check point interval (in sec)
LRUS 128 # Number of LRU queues
LRU_MAX_DIRTY 1 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 0 # LRU percent dirty end cleaning limit
TXTIMEOUT 0xa # Transaction timeout (in sec)
STACKSIZE 32
NOFUZZYCKPT 1
# 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 50
LTXEHWM 60
# 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 10 # Default number of online worker threads
# Data Replication Variables
DRINTERVAL 0 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 15 # DR network timeout (in sec)
DRLOSTFOUND /ctxtools/informix/etc/dr.lostfound # 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 amount of memory for any CDR queue (Kbytes)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
CDR_SERIAL 0,0 # Serial Column Sequence
CDR_DBSPACE # dbspace for syscdr database
CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)
CDR_QDATA_SBSPACE # CDR queue smart blob space
CDR_QDATA_SBFLAGS 0 # Log/no-log (default no log)
# Backup/Restore variables
BAR_ACT_LOG /ctxtools/informix/bar_act.log
# ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /ctxtools/informix/bar_dbug.log
# ON-Bar Debug Log - not in /tmp please
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
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 tempdb # 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 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 1 # 0: use internal time(fast), 1: get time from OS(slow)
# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 20 # Maximum allowed pdqpriority
DS_MAX_QUERIES 1000 # Maximum number of decision support queries
DS_TOTAL_MEMORY # 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 0 # 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 1
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 /ctxtools/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)
#
# 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 /ctxtools/informix/extend/krakatoa/jre
# JRE installation root directory
JVPHOME /ctxtools/informix/extend/krakatoa
# Krakatoa installation directory
JVPPROPFILE /ctxtools/informix/extend/krakatoa/.jvpprops # JVP property file
JVPLOGFILE /ctxtools/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 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
onstat -F
Fg Writes LRU Writes Chunk Writes
0 37681152 29571184
address flusher state data
5013b618 0 I 0 = 0X0
5013bc18 1 I 0 = 0X0
5013c218 2 I 0 = 0X0
5013c818 3 I 0 = 0X0
5013ce18 4 I 0 = 0X0
5013d418 5 I 0 = 0X0
5013da18 6 I 0 = 0X0
5013e018 7 I 0 = 0X0
5013e618 8 I 0 = 0X0
5013ec18 9 I 0 = 0X0
5013f218 10 I 0 = 0X0
5013f818 11 I 0 = 0X0
states: Exit Idle Chunk Lru