High CPU IO Wait
Posted in 2018
Arba Steven reported about 15% CPU IO wait and low CPU efficiency with many kaio threads on Informix 12.10.FC7, posting onstat and onconfig output. Alexandre Marini said the configuration looked default and needed tuning, probably buffers. Mark Jalkiewicz also saw buffers set far too low (about 80 and 100 MB) and asked about other applications on the server. No confirmed outcome.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Versions, Editions & End-of-Life
Hi,
We are having recently having some CPU IO Wait issues. The CPU IO Wait value
stays arount 15% .
I've also noticed that CPU Eff is very low:
IBM Informix Dynamic Server Version 12.10.FC7 -- On-Line -- Up 231 days
02:25:26 -- 5343628 Kbytes
MT global info:
sessions threads vps lngspins time
55 112 31 38 260806
sched calls thread switches yield 0 yield n yield forever
total: 3209079298 3953281725 271323002 213364796 510946501
per sec: 4345841 12278 4334915 542 4195
Virtual processor summary:
class vps usercpu syscpu total
cpu 10 148357.28 11552.33 159909.61
aio 5 6.29 87.65 93.94
lio 1 0.24 0.51 0.75
pio 1 0.40 0.73 1.13
adm 1 5.10 5.30 10.40
soc 1 1833.92 3178.71 5012.63
msc 1 0.06 0.05 0.11
crypto 10 2555.36 196.35 2751.71
fifo 1 0.24 0.58 0.82
total 31 152758.89 15022.21 167781.10
Individual virtual processors:
vp pid class usercpu syscpu total Thread Eff
1 12026 cpu 30532.56 2848.88 33381.44 61215.75 54%
2 12027 adm 5.10 5.30 10.40 0.00 0%
3 12028 lio 0.24 0.51 0.75 0.00 0%
4 12029 pio 0.40 0.73 1.13 0.00 0%
5 12030 aio 4.85 83.89 88.74 431.46 20%
6 12031 msc 0.06 0.05 0.11 0.61 18%
7 12032 fifo 0.24 0.58 0.82 0.00 0%
8 12033 cpu 23771.06 2078.80 25849.86 50232.95 51%
9 12034 cpu 20413.37 1491.44 21904.81 43167.55 50%
10 12035 cpu 15906.21 1280.29 17186.50 33191.59 51%
11 12036 cpu 12555.32 972.54 13527.86 26927.19 50%
12 12037 cpu 11260.30 719.93 11980.23 22081.00 54%
13 12038 cpu 9577.72 604.43 10182.15 18237.37 55%
14 12039 cpu 8613.38 502.04 9115.42 16041.61 56%
15 12040 cpu 8653.01 506.41 9159.42 17372.45 52%
16 12041 cpu 7074.35 547.57 7621.92 13583.73 56%
17 12042 crypto 2552.29 190.75 2743.04 2743.04 100%
18 12043 crypto 0.32 0.63 0.95 0.00 0%
19 12044 crypto 0.42 0.66 1.08 0.00 0%
20 12045 crypto 0.29 0.58 0.87 0.00 0%
21 12046 crypto 0.33 0.60 0.93 0.00 0%
22 12047 crypto 0.26 0.60 0.86 0.00 0%
23 12048 crypto 0.40 0.70 1.10 0.00 0%
24 12049 crypto 0.39 0.72 1.11 0.00 0%
25 12050 crypto 0.36 0.62 0.98 0.00 0%
26 12051 crypto 0.30 0.49 0.79 0.00 0%
27 12052 soc 1833.92 3178.71 5012.63 NA NA
28 12053 aio 0.35 0.90 1.25 2.21 56%
29 12054 aio 0.34 1.04 1.38 1.38 100%
30 14967 aio 0.36 0.97 1.33 1.33 100%
31 32478 aio 0.39 0.85 1.24 1.24 100%
tot 152758.89 15022.21 167781.10
Always when there is a such high CPU IO Wait I can see lots of KAIO threads in
active threads:
Running threads:
tid tcb rstcb prty status vp-class name
8 4aec4800 0 1 running 27soc* soctcppoll
30 4b31b8b0 0 3 running 1cpu* kaio
55 4b58dd28 0 3 running 9cpu* kaio
68 4b803178 0 3 running 10cpu* kaio
69 4b8034b8 0 3 running 11cpu* kaio
70 4b989608 0 3 running 12cpu* kaio
71 4b8037f8 0 3 running 13cpu* kaio
98 4bb73028 0 3 running 14cpu* kaio
Thank you.
##onstat -c
ROOTNAME rootdbs
ROOTPATH /opt/ibm/informix/storage/chunks/rootdbs
ROOTOFFSET 0
ROOTSIZE 2097152MIRROR 0
MIRRORPATH $INFORMIXDIR/tmp/demo_on.root_mirror
MIRROROFFSET 0
PHYSFILE 2048000
PLOG_OVERFLOW_PATH $INFORMIXDIR/tmp
PHYSBUFF 128
LOGFILES 101
LOGSIZE 300000
DYNAMIC_LOGS 2
LOGBUFF 64
LTXHWM 70
LTXEHWM 80
MSGPATH $INFORMIXDIR/tmp/online.log
CONSOLE $INFORMIXDIR/tmp/online.con
TBLTBLFIRST 0
TBLTBLNEXT 0
TBLSPACE_STATS 1DBSPACETEMP tempdbs1, tempdbs2, tempdbs3
SBSPACETEMP
SBSPACENAME sbspace
SYSSBSPACENAME sbspace
ONDBSPACEDOWN 2
SERVERNUM 2
DBSERVERNAME infx_prod
DBSERVERALIASES infx_db,lo_infx_tseries,ol_informix1210_json_01
FULL_DISK_INIT 0
NETTYPE soctcp,1,64,NET
LISTEN_TIMEOUT 60
MAX_INCOMPLETE_CONNECTIONS 1024
FASTPOLL 1
NUMFDSERVERS 4
NS_CACHE host=900,service=900,user=900,group=900
MULTIPROCESSOR 1
VPCLASS cpu,num=10,aff=(0-9),noage
VP_MEMORY_CACHE_KB 2048
SINGLE_CPU_VP 0
AUTO_TUNE 1
CLEANERS 8
DIRECT_IO 1
LOCKS 200000
DEF_TABLE_LOCKMODE page
RESIDENT 0
SHMBASE 0x44000000L
SHMVIRTSIZE 5120000
SHMADD 51200
EXTSHMADD 51200
SHMTOTAL 0
SHMVIRT_ALLOCSEG 0,3
SHMNOACCESS
CKPTINTVL 300
RTO_SERVER_RESTART 0
BLOCKTIMEOUT 3600
CONVERSION_GUARD 2
RESTORE_POINT_DIR $INFORMIXDIR/tmp
TXTIMEOUT 300
DEADLOCK_TIMEOUT 60
HETERO_COMMIT 0
TAPEDEV /ifxdb/archive
TAPEBLK 32
TAPESIZE 0
LTAPEDEV /ifxdb/bcklog
LTAPEBLK 32
LTAPESIZE 999999
BAR_ACT_LOG $INFORMIXDIR/tmp/bar_act.log
BAR_DEBUG_LOG $INFORMIXDIR/tmp/bar_dbug.log
BAR_DEBUG 0
BAR_MAX_BACKUP 0
BAR_MAX_RESTORE
BAR_RETRY 1
BAR_NB_XPORT_COUNT 20
BAR_XFER_BUF_SIZE 128
RESTARTABLE_RESTORE ON
BAR_PROGRESS_FREQ 0
BAR_BSALIB_PATH /opt/ibm/informix/lib/libbsapsm.so
BACKUP_FILTER /usr/bin/pigz -7c
RESTORE_FILTER /usr/bin/unpigz
BAR_PERFORMANCE 0
BAR_CKPTSEC_TIMEOUT 15
PSM_DBS_POOL DBSPOOL
PSM_LOG_POOL LOGPOOL
DD_HASHSIZE 31
DD_HASHMAX 10
DS_HASHSIZE 31
DS_POOLSIZE 127
PC_HASHSIZE 31
PC_POOLSIZE 127
PRELOAD_DLL_FILE
STMT_CACHE 0
STMT_CACHE_HITS 0
STMT_CACHE_SIZE 512
STMT_CACHE_NOLIMIT 0
STMT_CACHE_NUMPOOL 1
USEOSTIME 0
STACKSIZE 64
ALLOW_NEWLINE 0
USELASTCOMMITTED "NONE"
FILLFACTOR 90
MAX_FILL_DATA_PAGES 0
BTSCANNER num=1,threshold=5000,rangesize=-1,alice=6,compression=default
ONLIDX_MAXMEM 5120
MAX_PDQPRIORITY 100
DS_MAX_QUERIES
DS_TOTAL_MEMORY 250000
DS_MAX_SCANS 1048576
DS_NONPDQ_QUERY_MEM 25000
DATASKIP
OPTCOMPIND 2
DIRECTIVES 1
EXT_DIRECTIVES 0
OPT_GOAL -1
IFX_FOLDVIEW 1
STATCHANGE 10
USTLOW_SAMPLE 1
BATCHEDREAD_TABLE 1
BATCHEDREAD_INDEX 1
EXPLAIN_STAT 1
IFX_EXTEND_ROLE 1
SECURITY_LOCALCONNECTION
UNSECURE_ONSTAT
ADMIN_USER_MODE_WITH_DBSA
ADMIN_MODE_USERS
SSL_KEYSTORE_LABEL
TLS_VERSION
PLCY_POOLSIZE 127
PLCY_HASHSIZE 31
USRC_POOLSIZE 127
USRC_HASHSIZE 31
SQL_LOGICAL_CHAR OFF
SEQ_CACHE_SIZE 10
ENCRYPT_HDR
ENCRYPT_SMX
ENCRYPT_CDR 0
ENCRYPT_CIPHERS
ENCRYPT_MAC
ENCRYPT_MACFILE
ENCRYPT_SWITCH
CDR_EVALTHREADS 1,2
CDR_DSLOCKWAIT 5
CDR_QUEUEMEM 4096
CDR_NIFCOMPRESS 0
CDR_SERIAL 0
CDR_DBSPACE
CDR_QHDR_DBSPACE
CDR_QDATA_SBSPACE
CDR_SUPPRESS_ATSRISWARN
CDR_DELAY_PURGE_DTC 0
CDR_LOG_LAG_ACTION ddrblock
CDR_LOG_STAGING_MAXSIZE 0
CDR_MAX_DYNAMIC_LOGS 0GRIDCOPY_DIR $INFORMIXDIR
CDR_TSINSTANCEID 0
CDR_MAX_FLUSH_SIZE 50
CDR_AUTO_DISCOVER 0
CDR_MEM 0
SHARD_MEM 0
SHARD_ID 0
DRAUTO 0
DRINTERVAL 0
HDR_TXN_SCOPE NEAR_SYNC
DRTIMEOUT 30
HA_ALIAS
HA_FOC_ORDER SDS,HDR,RSSDRLOSTFOUND $INFORMIXDIR/etc/dr.lostfound
DRIDXAUTO 0
LOG_INDEX_BUILDS
SDS_ENABLE
SDS_TIMEOUT 20
SDS_TEMPDBS
SDS_PAGING
SDS_LOGCHECK 10
SDS_ALTERNATE NONE
SDS_FLOW_CONTROL 0
UPDATABLE_SECONDARY 0
FAILOVER_CALLBACK
FAILOVER_TX_TIMEOUT 0
TEMPTAB_NOLOG 0
DELAY_APPLY 0
STOP_APPLY 0
LOG_STAGING_DIR
RSS_FLOW_CONTROL 0
SMX_NUMPIPES 1
ENABLE_SNAPSHOT_COPY 0
SMX_COMPRESS 0
SMX_PING_INTERVAL 10
SMX_PING_RETRY 6
CLUSTER_TXN_SCOPE SERVER
ON_RECVRY_THREADS 1
OFF_RECVRY_THREADS 10
DUMPDIR $INFORMIXDIR/tmp
DUMPSHMEM 1
DUMPGCORE 0
DUMPCORE 0
DUMPCNT 1ALARMPROGRAM $INFORMIXDIR/etc/alarmprogram.sh
ALRM_ALL_EVENTS 0
STORAGE_FULL_ALARM 600,3SYSALARMPROGRAM $INFORMIXDIR/etc/evidence.sh
RAS_PLOG_SPEED 55196
RAS_LLOG_SPEED 975
EILSEQ_COMPAT_MODE 0
QSTATS 0
WSTATS 0
USERMAPPING OFF
SP_AUTOEXPAND 1
SP_THRESHOLD 0
SP_WAITTIME 30
AUTOLOCATE 0
DEFAULTESCCHAR \\\\
MQSERVER
MQCHLLIB
MQCHLTAB
REMOTE_SERVER_CFG hosts.equiv
REMOTE_USERS_CFG hosts.equiv
S6_USE_REMOTE_SERVER_CFG 1
LOW_MEMORY_RESERVE 0
LOW_MEMORY_MGR 0
JVPPROPFILE $INFORMIXDIR/extend/krakatoa/.jvpprops
JVPLOGFILE $INFORMIXDIR/tmp/jvp.log
JVPARGS -Dcom.ibm.tools.attach.enable=no
JVPCLASSPATH
$INFORMIXDIR/extend/krakatoa/krakatoa.jar:$INFORMIXDIR/extend/krakatoa/jdbc.jar
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50,lru_max_dirty=60.5
BUFFERPOOL size=2K,buffers=50000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=8K,buffers=10000,lrus=8,lru_min_dirty=50,lru_max_dirty=60.5
Hello. Your engine configuration is pretty standard, so you are with a Ferrari, driving on a slow speed lane. You must tune it as soon as possible. Pretty sure you are missing buffers, so I would suggest you to tune then first if all. Several other parameters could bring you a great performance benefit. Hope it helps. Best regards. Alexandre Marini
Arba, are there other applications running on the database server ? it appears that your database buffers are set way too low (80 meg & 100 meg) so you probably are experiencing buffer waits and are turning them over many times per hour. Mark