客户现场AIX5.3.0.8平台上ORACLE 9.2.0.8 RAC环境下,通过QUEST PA 监控
查看CPU资源消耗第一位是background process,通过挖掘看到是DIAG进程。
通过v$session_wait,查看等待事件:
SQL>select event, count(*) from v$session_wait group by event;
EVENT COUNT(*)
--------------------------------------------
async disk io 1
该等待进程7X24一直保持着。需要进一步进行诊断:
SQL>select pid, name from v$process p, v$bgprocess where p.addr=b.paddr
PID NAME
---------- -----
2 PMON
3 DIAG
SQL> oradebug setorapid 3
SQL> oradebug short_stack
ksdxfstk-skgxpiwait skgxpwaitopirip
kjzgpoll: Poll for any IPC and cluster events
kjzfdcv: Receive messages
kjzcrcv::port-based received among DIAGs
kjzcwait:Wait for ipc operation to complete
skgxpwait:Wait for an asynchronous request to finish.
看到之间有三个等待,用AIX进程监控查看进程运行情况:
ps -ef |grep diag
oracle 221342 1 0 Nov 26 - 391:55 ora_diag_xmds2
truss -o /tmp/diag1.out -p 221342
_select(9, 0x0FFFFFFFFFFF9F20, 0x0FFFFFFFFFFFAF20, 0x0FFFFFFFFFFFBF20, 0x0FFFFFFFFFFF9F10) = 0
_poll(0x0FFFFFFFFFFFD080, 2, 18) = 0
times(0x00000001102A6D90) = 1789021228
times(0x00000001102A6D80) = 1789021228
times(0x00000001102A6D80) = 1789021228
从诊断信息中,我们可以看到DIAG一直在循环查询IPC和集群的等待信息,如果
skgxpwait一直循环,有可能是数据库存在问题。
是否该进程真的消耗CPU资源?监控操作系统查看CPU使用进程中,DIAG进程
没有消耗太多的CPU,另外,该进程ASYNC DISK IO半年之后突然消失,初步怀
疑是数据库重启,按以上步骤跟踪DIAG进程,也出现相同的结果。因此可以判断
9.2.0.8 RAC出现该等待事件是ORACLE的误报,没有太大问题。
另外可以通过10046跟踪level 8跟踪该等待进程,可以相信,DIAG进程等待
没有注册到IDLE TIME,所以被ASYNC DISK IO给记录。
所以在9.2.0.8 RAC碰到该事件,可以忽略。
查看CPU资源消耗第一位是background process,通过挖掘看到是DIAG进程。
通过v$session_wait,查看等待事件:
SQL>select event, count(*) from v$session_wait group by event;
EVENT COUNT(*)
--------------------------------------------
async disk io 1
该等待进程7X24一直保持着。需要进一步进行诊断:
SQL>select pid, name from v$process p, v$bgprocess where p.addr=b.paddr
PID NAME
---------- -----
2 PMON
3 DIAG
SQL> oradebug setorapid 3
SQL> oradebug short_stack
ksdxfstk-skgxpiwait skgxpwaitopirip
kjzgpoll: Poll for any IPC and cluster events
kjzfdcv: Receive messages
kjzcrcv::port-based received among DIAGs
kjzcwait:Wait for ipc operation to complete
skgxpwait:Wait for an asynchronous request to finish.
看到之间有三个等待,用AIX进程监控查看进程运行情况:
ps -ef |grep diag
oracle 221342 1 0 Nov 26 - 391:55 ora_diag_xmds2
truss -o /tmp/diag1.out -p 221342
_select(9, 0x0FFFFFFFFFFF9F20, 0x0FFFFFFFFFFFAF20, 0x0FFFFFFFFFFFBF20, 0x0FFFFFFFFFFF9F10) = 0
_poll(0x0FFFFFFFFFFFD080, 2, 18) = 0
times(0x00000001102A6D90) = 1789021228
times(0x00000001102A6D80) = 1789021228
times(0x00000001102A6D80) = 1789021228
从诊断信息中,我们可以看到DIAG一直在循环查询IPC和集群的等待信息,如果
skgxpwait一直循环,有可能是数据库存在问题。
是否该进程真的消耗CPU资源?监控操作系统查看CPU使用进程中,DIAG进程
没有消耗太多的CPU,另外,该进程ASYNC DISK IO半年之后突然消失,初步怀
疑是数据库重启,按以上步骤跟踪DIAG进程,也出现相同的结果。因此可以判断
9.2.0.8 RAC出现该等待事件是ORACLE的误报,没有太大问题。
另外可以通过10046跟踪level 8跟踪该等待进程,可以相信,DIAG进程等待
没有注册到IDLE TIME,所以被ASYNC DISK IO给记录。
所以在9.2.0.8 RAC碰到该事件,可以忽略。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/354732/viewspace-737899/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/354732/viewspace-737899/