chekcpoints, BUFFER settings, and optimization
Posted in 1997
I am trying to increase throughput and speed for an OLTP system using
Informix 7.22 UC1 and would like some advice. The platform is a SUN Ultra
Enterprise 5000 with 7 UltraSPARC 248 MHZ processors and 1 Gig of memory.
I would like to minimize the length of checkpoints and maximize the
BUFFER usage but have found that increasing the BUFFERS results in longer
checkpoints. Checkpoints must remain in the 1-2 second range to avoid
problems with applications running against the database. Current
settings yield a 1-2 second checkpoint every 60 seconds. The database is
ANSI mode with Unbuffered logging. My read caching seems fine but the
write caching is not good. I have thought about increasing the buffers
to 7000 and decreasing LRU_MAX_DIRTY to 5 and LRU_MIN_DIRTY to 2. Is
this a good move? also going to increase SHMVIRTSIZE from 10MB to 100MB
and SHMADD from 8MB to 20MB. We have plenty of memory to give informix
(1 Gig physical memory on machine) but I am not sure how to get informix
to utilize it?? System is application driven and not connection
intensive. Most activity is generated by SQL calls and stored
procedures. Any other suggestions would be appreciated!
Also, How can I tell if additional CPU's would benefit the database? I am
confused by the usercpu and syscpu numbers? What do they really mean in
terms of the total cpu time available?
stats for 1 min interval:
Mon Dec 8 08:37:44 CST 1997
INFORMIX-OnLine Version 7.22.UC1 -- On-Line -- Up 49 days 04:48:56 --
85264 Kbytes
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
10363 10367 1405830 99.26 3848 4447 6678 42.38
isamtot open start read write rewrite delete commit
rollbk
4584911 7764 24197 457872 768 3200 2 1556 0
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 106.20 4.00 1 2
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
2408 95 181379 0 0 6 48 1725
ixda-RA idx-RA da-RA RA-pgsused lchwaits
6837 0 0 6812 20296
current onconfig file:
#************************************************************************
** # # INFORMIX SOFTWARE, INC. # # Title: online_24hbConfig #
Description: INFORMIX-OnLine Configuration Parameters (PRODUCTION SYSTEM)
#
#************************************************************************
**
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /dev/vx/rdsk/24hb/informix_d1_v1 # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
ROOTSIZE 700000 # 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 140000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 13 # Number of logical log files
LOGSIZE 42000 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /vrs/log/DBMessage # System message log file path
CONSOLE /vrs/log/DBConsole # System console message path
ALARMPROGRAM /opt/informix/etc/no_log.sh # Alarm program path
# note: set ALARMPROGRAM to no_log.sh to turn off alarms.
# System Archive Tape Device
TAPEDEV /dev/rmt/0mb # Tape device path
TAPEBLK 64 # Tape block size (Kbytes)
TAPESIZE 5000000 # Maximum amount of data to put on tape
(Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/null # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape
(Kbytes)
# Optical
STAGEBLOB # INFORMIX-OnLine/Optical staging area
# System Configuration
SERVERNUM 1 # Unique id corresponding to a OnLineinstance
DBSERVERNAME online_24hb # Name of default database server
DBSERVERALIASES online_24hb_pc # List of alternate dbservernames
NETTYPE ipcshm,2,75,CPU # Override sqlhosts nettype parameters
NETTYPE tlitcp,1,50,NET # Override sqlhosts nettype parameters
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
env.
RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 formulti-processor
NUMCPUVPS 5 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps toone
NOAGE 1 # Process aging#AFF_SPROC 1 # Affinity start processor
#AFF_NPROCS 4 # Affinity number of processors
AFF_SPROC 1 # Affinity start processor
AFF_NPROCS 5 # Affinity number of processors
# Shared Memory Parameters
LOCKS 100000 # Maximum number of locks BUFFERS 5000 # Maximum numberof shared buffers #BUFFERS 1600 # Maximum number of shared buffers
NUMAIOVPS 2 # Number of IO vps #NUMAIOVPS 1 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes) LOGBUFF 32 # Logicallog buffer size (Kbytes) LOGSMAX 15 # Maximum number of logical log
files CLEANERS 8 # Number of buffer cleaner processes SHMBASE
0xa000000 # Shared memory base address SHMVIRTSIZE 10000 # initial
virtual shared memory segment size SHMADD 8192 # Size of new shared
memory segments (Kbytes) SHMTOTAL 0 # Total shared memory (Kbytes).
0=>unlimited CKPTINTVL 60 # Check point interval (in sec) LRUS 25 #
Number of LRU queues LRU_MAX_DIRTY 10 # LRU percent dirty begin
cleaning limit LRU_MIN_DIRTY 5 # LRU percent dirty end cleaning limit
LTXHWM 80 # Long transaction high water mark percentage LTXEHWM 80 #Long transaction high water mark (exclusive) #TXTIMEOUT 0x12c #
Transaction timeout (in sec) TXTIMEOUT 0x12c # Transaction timeout (in
sec) STACKSIZE 32 # Stack size (Kbytes)
# 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 40 # Default number of offline worker threads
ON_RECVRY_THREADS 10 # 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@