Re: Performance problem - Informix,cgi-webdriver,HP-UX
Posted in 1999
Topics: Performance & Tuning, Storage & Space Management, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration, Platform-Specific Issues, Versions, Editions & End-of-Life
Hi all,
Art Kagel wrote <snip> Post the following and we will try to help out <snip>
so here it is.
In the meantime I've been trying to find out who the DBA is here but no one
has stepped forward. Maybe I'll stop admitting to being the sysadmin ;-)
It seems that in our company the concept of having a DBA does not exist !
Best regards,
Michael Martin
michael_martin@komatsu.co.jp
=========================================================================
>Sounds like the engine needs serious tuning and you MAY also need a newer
>bigger faster server box. Post the following and we will try to help out
>(BTW you have IDS 9.14 not 7.3):
Whoops! INFORMIX-Universal Server Version 9.14.UC6 it is.
>ONCONFIG file
OYAPSV01#>cat onconfig.smapbench
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.smapbench
# Description: INFORMIX-Universal Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace nameROOTPATH /informix/disk/rootdbs # 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 99894 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 10 # Number of logical log files
LOGSIZE 99994 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /informix/online.log # System message log file path
CONSOLE /dev/console # System console message pathALARMPROGRAM /informix/etc/log_full.sh # Alarm program path
# System Archive Tape Device
#TAPEDEV /dev/rmt/0m # Tape device path
TAPEDEV /dev/null
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 4194304 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
#LTAPEDEV /dev/rmt/0m # Log tape device path
LTAPEDEV /dev/null
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 4194304 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # INFORMIX-OnLine/Universal Server staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME oyapsv01 # Name of default database server
DBSERVERALIASES oyapsv01tcp # List of alternate dbservernames#NETTYPE ipcshm,1,100,NET # Configure poll thread(s) for nettype
NETTYPE ipcstr,1,100,CPU # Configure poll thread(s) for nettype#NETTYPE soctcp,1,100,NET # Configure poll thread(s) for nettype
NETTYPE soctcp,2,100,NET # Configure poll thread(s) for nettype
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 for multi-processor
NUMCPUVPS 2 # 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 100000 # Maximum number of locks#LOCKS 20000 # Maximum number of locks
BUFFERS 50000 # Maximum number of shared buffers
NUMAIOVPS 2 # Number of IO vps#NUMAIOVPS 20 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)LOGSMAX 12 # Maximum number of logical log files
CLEANERS 20 # Number of buffer cleaner processes
SHMBASE 0x0 # Shared memory base address
SHMVIRTSIZE 384928 # initial virtual shared memory segment size
SHMADD 32748 # Size of new shared memory segments (Kbytes)
#SHMTOTAL 720000 # Total shared memory (Kbytes). 0=>unlimited
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 1800 # Check point interval (in sec)
LRUS 8 # Number of LRU queues
LRU_MAX_DIRTY 15 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 5 # LRU percent dirty end cleaning limit#LTXHWM 50 # Long transaction high water mark percentage
LTXHWM 40#LTXEHWM 60 # Long transaction high water mark (exclusive)
LTXEHWM 50
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 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 /informix/etc/dr.lostfound # DR lost+found file path
# Backup/Restore variables
BAR_ACT_LOG /tmp/bar_act.log
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
BAR_XFER_BUF_SIZE 31
# Read Ahead Variables
#RA_PAGES 64 # Number of pages to attempt to read ahead
RA_PAGES 400 # Number of pages to attempt to read ahead
RA_THRESHOLD 60 # 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
# tempor
OK, something to work with. Follow along. I see only a few spots we can
improve but this might get you by until you can budget a faster system.
michael martin wrote:
>
> Hi all,
>
> Art Kagel wrote <snip> Post the following and we will try to help out <snip>
> so here it is.
>
> In the meantime I've been trying to find out who the DBA is here but no one
> has stepped forward. Maybe I'll stop admitting to being the sysadmin ;-)
>
> It seems that in our company the concept of having a DBA does not exist !
Get the boses to pick someone and send this new DBA, perhaps you, to
Informix DBA classes. At least the administration and tuning classes.
Informix does not have the same burning need for a large DBA staff like
Oracle does but the cost of someone taking the admin courses will be paid
back big time.
> Best regards,
>
> Michael Martin
> michael_martin@komatsu.co.jp
>
> =========================================================================
>
> >Sounds like the engine needs serious tuning and you MAY also need a newer
> >bigger faster server box. Post the following and we will try to help out
> >(BTW you have IDS 9.14 not 7.3):
>
> Whoops! INFORMIX-Universal Server Version 9.14.UC6 it is.
>
> >ONCONFIG file
>
> OYAPSV01#>cat onconfig.smapbench
> #**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig.smapbench
> # Description: INFORMIX-Universal Server Configuration Parameters
> #
> #**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME rootdbs # Root dbspace name> ROOTPATH /informix/disk/rootdbs # 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 99894 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 10 # Number of logical log files
> LOGSIZE 99994 # Logical log size (Kbytes)>
> # Diagnostics
>
> MSGPATH /informix/online.log # System message log file path
> CONSOLE /dev/console # System console message path> ALARMPROGRAM /informix/etc/log_full.sh # Alarm program path
>
> # System Archive Tape Device
>
> #TAPEDEV /dev/rmt/0m # Tape device path
> TAPEDEV /dev/null
> TAPEBLK 16 # Tape block size (Kbytes)
> TAPESIZE 4194304 # Maximum amount of data to put on tape (Kbytes)>
> # Log Archive Tape Device
>
> #LTAPEDEV /dev/rmt/0m # Log tape device path
> LTAPEDEV /dev/null
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 4194304 # Max amount of data to put on log tape (Kbytes)>
> # Optical
>
> STAGEBLOB # INFORMIX-OnLine/Universal Server staging area
>
> # System Configuration
>
> SERVERNUM 0 # Unique id corresponding to a OnLine instance
> DBSERVERNAME oyapsv01 # Name of default database server
> DBSERVERALIASES oyapsv01tcp # List of alternate dbservernames> #NETTYPE ipcshm,1,100,NET # Configure poll thread(s) for nettype
> NETTYPE ipcstr,1,100,CPU # Configure poll thread(s) for nettypeOK, your sqlhost file does not show ANY connection type defined as stream
pipes (ie ipcstr) but it DOES show a shared memory connection, so, make
this:
NETTYPE ipcshm,2,100,CPU
Note the changes to the first two fields. This will help a bit with load
balancing the two CPUs.
> #NETTYPE soctcp,1,100,NET # Configure poll thread(s) for nettype
> NETTYPE soctcp,2,100,NET # Configure poll thread(s) for nettype
> 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 for multi-processor
> NUMCPUVPS 2 # Number of user (cpu) vps
> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
>
> NOAGE 0 # Process aging
On HP the NOAGE should be set to '1' because HPUX is VERY aggressive about
aging long running processes, as a sysadmin you knew that, so you have to
disable priority aging for the oninit processes. This is how.
> AFF_SPROC 0 # Affinity start processor
> AFF_NPROCS 0 # Affinity number of processors>
> # Shared Memory Parameters
>
> LOCKS 100000 # Maximum number of locks> #LOCKS 20000 # Maximum number of locks
> BUFFERS 50000 # Maximum number of shared buffers
No enough buffers. You have 3GB of memory and are only using 100MB for
data caching of a 25GB database! Up that to AT LEAST 250000 though it
would not be outragious to configure 500000 buffers or 1GB.
> NUMAIOVPS 2 # Number of IO vps> #NUMAIOVPS 20 # Number of IO vps
> PHYSBUFF 32 # Physical log buffer size (Kbytes)
> LOGBUFF 32 # Logical log buffer size (Kbytes)> LOGSMAX 12 # Maximum number of logical log files
> CLEANERS 20 # Number of buffer cleaner processes
You do not need 20 CLEANERS with only 8 LRUS, however, I am going to
recommend that you up the LRUS so make CLEANERS == LRUS.
> SHMBASE 0x0 # Shared memory base address
> SHMVIRTSIZE 384928 # initial virtual shared memory segment size
I do not see onstat -g seg output, maybe I did not ask for it. On HP it
is VERY important that the Informix engine not use more than 4 shared
memory segments, the RESIDENT segment is one, the initial virtual segment
is another, a shared memory connection comm segment is a third. Check the
onstat -g seg output. If there are more than one class 'V' segment listedfold it's/their size (some multiple of SHMADD) into SHMVIRTSIZE so the
next engine startup has only a single virtual segment. This is because of
a quirk in the HP-PA/RISC architecture which has 4 special purpose
registers for shared memory handles. Having more than 4 shared segments
accessed by a process causes these registers to thrash destroying
performance.
Meantime try running onmode -F if you see multiple virtual segments if
they are no longer needed this will deallocate them and help somewhat.
> SHMADD 32748 # Size of new shared memory segments (Kbytes)> #SHMTOTAL 720000 # Total shared memory (Kby
Related threads
- onbar -c -F in Windows Informix instance
- Anyone... SQLCODE=-668, ISAM error=-1
- Not using the 100% logical log page size alloacted to informix