【案例81】NMC调用导致数据库的效率问题
问题现象
客户在使用NC系统时,发现系统特别卡顿。需要紧急排查。
问题分析
排查NMC发现,所有的线程都处于执行SQL层面,说明数据库当前出现了异常。查看数据库资源状态发现,Oracle相关进程CPU利用率达到了100%。
查看现在数据库中正在执行的SQL发现有大量的Disk file operations I/O等待时间。
怀疑是这些SQL导致的数据库CPU100%。查看相关SQL在哪台机器上触发的。发现为从机触发。
抓取相关SQL,如下经沟通是NMC检测脚本。
select s.client_identifier,
s.sid,
s.serial#,
sql.sql_fulltext,
s.last_call_et,
s.event,
sql.SQL_ID,
child_number,
s.sql_hash_value
from v$session s, v$sql sql
where s.sql_address = sql.ADDRESS
and s.username = upper('XXX')
and s.status = 'ACTIVE'
and s.last_call_et > 10
order by sid
也可以通过查看SPID对应的进程号,在从机确定对应的PID是什么。
SELECT pid FROM v$process WHERE spid = '你的SPID';
在通过PID去获取对应的应用信息,就知道是什么程序调用的了。
ps -ef | grep "你的pid"
经过排查,显示也是NMC的进程导致的。
解决方案
关闭从机NMC后,CPU恢复正常。NC65系统,正常NMC监控,只配置主机即可,从机不用配置。