Wnnn processes consuming high CPU
(Doc ID 1492880.1)
Last updated on MAY 15, 2023
Applies to:
Oracle Database Cloud Schema Service - Version N/A and laterOracle Database Exadata Express Cloud Service - Version N/A and later
Gen 1 Exadata Cloud at Customer (Oracle Exadata Database Cloud Machine) - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Information in this document applies to any platform.
Symptoms
High CPU consumed by Wnnn processes observed.
For convenience use "top -c" - which will show background secondary ora_w0nn under top's Command column.
top - 11:08:00 up 147 days, 23:30, 1 user, load average: 4.73, 5.18, 5.34
Tasks: 845 total, 6 running, 839 sleeping, 0 stopped, 0 zombie
top - 11:08:23 up 147 days, 23:31, 1 user, load average: 4.82, 5.17, 5.33
Tasks: 846 total, 4 running, 842 sleeping, 0 stopped, 0 zombie
Cpu(s): 10.6%us, 1.9%sy, 0.0%ni, 86.2%id, 1.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 148446540k total, 139612032k used, 8834508k free, 866792k buffers
Swap: 75497464k total, 136668k used, 75360796k free, 45116728k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26031 oracle 15 0 70.2g 26m 21m S 46.1 0.0 42108:40 ora_w005_<sid>
27127 oracle 15 0 70.2g 26m 21m S 39.8 0.0 44161:10 ora_w006_<sid>
26523 oracle 16 0 70.2g 26m 21m S 28.2 0.0 15970:03 ora_w000_<sid>
26905 oracle 15 0 70.3g 72m 40m S 23.2 0.1 47129:16 ora_w008_<sid>
29909 oracle 15 0 70.2g 26m 21m S 20.5 0.0 47406:00 ora_w009_<sid>
28496 oracle 15 0 70.2g 26m 21m S 15.2 0.0 21234:57 ora_w001_<sid>
9556 oracle 15 0 70.2g 26m 21m S 14.2 0.0 30517:23 ora_w002_<sid>
Gather errorstacks on the processes consuming high cpu.
$ sqlplus "/as sysdba"
oradebug setospid <process ID>
oradebug unlimit
oradebug dump errorstack 3
-- wait 90 seconds
oradebug dump errorstack 3
-- wait 90 seconds
oradebug dump errorstack 3
oradebug tracefile_name
exit
Trace files from Wnnn point to the same stack when the background processes are on CPU:
skdstdst <- ksedst1 <- ksedst <- dbkedDefDump <- ksedmp
<- ksdxfdmp <- ksdxcb <- sspuser <- sighandler <- times
<- sltrgatime64 <- ktuGetExtTxnInfo <- ktuxcm <- ktslf_sumfsb <- ktslf_sumfsg
<- ktslfsum_cfs <- ktslfsum <- ktslj_check_freespa <- ktslj_segextce
<- ktsj_execute_task <- ktsj_secondary_main <- 597 <- ksvrdp <- opirip
<- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main
The process state of Wnnm for the above stacks also contains the BUFFER BUSY waits:
E.g.:
process state
SO: 0x1186d493d0, type: 4, owner: 0x11d3dec5a0, flag: INIT/-/-/0x00 if: 0x3 c: 0x3
proc=0x11d3dec5a0, name=session, file=ksu.h LINE:12459, pg=0
(session) sid: 12542 ser: 5043 trans: (nil), creator: 0x11d3dec5a0
flags: (0x51) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
flags2: (0xc0408) -/-
DID: , short-term DID:
txn branch: (nil)
oct: 0, prv: 0, sql: (nil), psql: 0x11ceeb8ad0, user: 0/SYS
ksuxds FALSE at location: 0
service name: SYS$BACKGROUND
Current Wait Stack:
Not in wait; last wait ended 0.426297 sec ago
Wait State:
fixed_waits=0 flags=0x28 boundary=(nil)/-1
Session Wait History:
elapsed time of 0.426318 sec since last wait
0: waited for 'buffer busy waits'
file#=0x7, block#=0x39a0, class#=0x35
wait_id=861559915 seq_num=41637 snap_id=1
wait times: snap=0.000044 sec, exc=0.000044 sec, total=0.000044 sec
wait times: max=infinite
wait counts: calls=2 os=2
occurred after 0.001519 sec of elapsed time
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |