Re: Performance Problem with many buffer wait
Posted in 1999
Which 7.30?
Check the Btree percentages using onstat -P|tail. There is a bug in 7.3
that causes the buffers to be eaten up by Btree pages. This may be your
problem.
Doug Agnew
Grace Kan wrote in message <380EA750.7E5DD882@netvigator.com>...
>Hi all informix expert,
>
> I am now using Informix Online 7.30, and I experience a lot of
>buffer wait, that is a B flag in first position in onstat -u, which make
>my informix database extremely slow.
>
>c4ad7d24 B--PR-- 50686 hwchung ttyud c22403a8 0 1 1238
>64
>
> So why this happen and how to avoid it. And one more question,
>why not the onstat -u show lock wait ( L flag in the first position)
>rather than buffer wait, as user thread getting a buffer by obtain a
>share lock or exclusive lock on that buffer.
>
> Looking forward to have your reply
>
>Best Regards,
>Grace
>ps. attached is onstat -c and onstat -p
>
>#**************************************************************************
>
>#
># INFORMIX SOFTWARE, INC.
>#
># Title: onconfig.01
># Description: INFORMIX-OnLine Configuration Parameters
>#
>#**************************************************************************
>
># Root Dbspace Configuration
>
>ROOTNAME rootdbs # Root dbspace name
>ROOTPATH /dev/rootdcs.1 # Path for device containing root>dbspace
>ROOTOFFSET 0 # Offset of root dbspace into device
>(Kbytes)
>ROOTSIZE 204800 # 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 10240 # Physical log file size (Kbytes)>
># Logical Log Configuration
>
>LOGFILES 94 # Number of logical log files
>LOGSIZE 4000 # Logical log size (Kbytes)>
># Diagnostics
>
>MSGPATH /usr2/informix7/co2dcs.log # System message log file
>path
>CONSOLE /dev/console # System console message path>ALARMPROGRAM /usr2/informix7/log_full.sh # Alarm program path
>
># System Archive Tape Device
>
>TAPEDEV /dev/rmt/0m # Tape device path
>TAPEBLK 16 # Tape block size (Kbytes)
>TAPESIZE 8192000 # Maximum amount of data to put on tape
>(Kbytes)>
># Log Archive Tape Device
>
>LTAPEDEV /dev/rmt/0m # Log tape device path
>LTAPEBLK 16 # Log tape block size (Kbytes)
>LTAPESIZE 8192000 # Max amount of data to put on log tape
>(Kbytes)>
># Optical
>
>STAGEBLOB # INFORMIX-OnLine/Optical staging area
>
># System Configuration
>
>SERVERNUM 6 # Unique id corresponding to a OnLine>instance
>DBSERVERNAME co2dcs # Name of default database server
>DBSERVERALIASES # List of alternate dbservernames
>NETTYPE ipcshm,1,512,CPU # Configure poll thread(s) for nettype
>NETTYPE soctcp,1,128,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 200000 # Maximum number of locks
>BUFFERS 20000 # Maximum number of shared buffers
>NUMAIOVPS 11 # Number of IO vps
>PHYSBUFF 128 # Physical log buffer size (Kbytes)
>LOGBUFF 128 # Logical log buffer size (Kbytes)>LOGSMAX 100 # Maximum number of logical log files
>CLEANERS 8 # Number of buffer cleaner processes
>SHMBASE 0x0 # Shared memory base address
>SHMVIRTSIZE 163840 # initial virtual shared memory segment>size
>SHMADD 30000 # Size of new shared memory segments
>(Kbytes)
>SHMTOTAL 0 # Total shared memory (Kbytes).
>0=>unlimited
>CKPTINTVL 300 # Check point interval (in sec)
>LRUS 16 # Number of LRU queues
>LRU_MAX_DIRTY 5 # LRU percent dirty begin cleaning limit
>
>LRU_MIN_DIRTY 2 # LRU percent dirty end cleaning limit
>LTXHWM 50 # Long transaction high water mark>percentage
>LTXEHWM 60 # Long transaction high water mark
>(exclusive)
>TXTIMEOUT 0x12c # Transaction timeout (in sec)
>STACKSIZE 128 # 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 /dev/null # 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 20 # Number of pages to attempt to read>ahead
>RA_THRESHOLD 18 # 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 tmpdbs # Default temp dbspaces>
># DUMP*:
># The followin