服务器进程异常的原因分析(r6笔记第74天)
公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2015-09-30 22:39:17 · 原文链接
现在系统监控的工作处于过渡期,即对于Oracle的还是保留了gridcontrol的监控和报警,同时也保留了zabbix的报警,在发生问题的时候想看看哪个能监控的更到位一些,是否稳定等等,其实这个还真不好说,监控的好与不好都在于使用的情况,标准也不一样,不过从今天这个案例来看,系统级的监控还是zabbix要灵活一些。
今天收到的报警邮件如下:
ZABBIX-监控系统:
————————————
报警内容: Too many OS processes on xxxx_p@10.127.xxxx
————————————
报警级别: PROBLEM
————————————
监控项目: Number of processes:2009
————————————
报警时间:2015.09.30-05:15:00
首先说明一下情况,一般的系统session数都在1000左右,在定义zabbix监控项的时候还是认为能够限定一下系统级的进程数,所以就给了一个较大的阀值2000,认为还是做一个系统级的监控为好。所以系统在早晨业务低峰期出现这种问题,还是有些奇怪的。
首先联想到的就是可能数据库中存在着大量的sql语句,但是连接没有合理释放。但是我猜中了开始,没有猜中结局。
首先查看数据库的DB time,没有发现暴涨。
BEGIN_SNAP END_SNAP SNAPDATE LVL DURATION_MINS DBTIME
———- ———- ———————- ——— ———-
23356 23357 30 Sep 2015 00:00 1 60 14
23357 23358 30 Sep 2015 01:00 1 60 10
23358 23359 30 Sep 2015 02:00 1 60 4
23359 23360 30 Sep 2015 03:00 1 60 4
23360 23361 30 Sep 2015 04:00 1 60 5
23361 23362 30 Sep 2015 05:00 1 60 21
查看session使用情况。
STATUS CNT
————- ———-
ACTIVE 35
INACTIVE 643
———-
sum 678
目前数据库使用的session数大于在700左右,这和报警中的2000多相差甚远。
查看系统io和CPU使用情况也没有发现异常。
Time %iowait %idle
04:50:01 AM 0.02 99.50
05:00:01 AM 0.02 99.36
05:10:01 AM 0.02 99.28
05:20:01 AM 0.03 98.36
05:30:01 AM 0.02 99.02
05:40:01 AM 0.02 99.02
05:50:01 AM 0.02 99.13
06:00:01 AM 0.46 97.33
06:10:01 AM 0.06 98.63
06:20:01 AM 0.02 99.05
06:30:01 AM 0.03 98.63
Average: 0.03 99.24
这个时候有些怀疑是否被报警误导了,但是zabbix好的一点就是可以灵活的定制图形。

可以看到在凌晨开始进程数据开始逐渐增长,到早晨5点多刚好超过了阀值,而且还在不断增长。
我查看问题的时间段在早晨7点多,正好就是进程数暴涨的时间段,根据我得到的session情况,发现session数还是比较稳定,保持在700左右。

所以既然数据层面发现不了问题,那么只能想到就是系统级了。
但是系统级怎么查看呢,似乎还是有些费力。
# ps -ef|wc -l
2545
