#一次服务器load值狂飙的处理过程以及思路 处理时间:2016_11_22:17:00 


#收到报警78服务器load值报警,登录机器uptime查看load值

wKiom1g0DkXTtzyJAABBw6D_lOI162.png-wh_50

#load值超高,第一反应top一下,想找出来是哪个程序消耗了大量的cpu

wKioL1g0DkWAIR9OAAR7eZozhGY187.png-wh_50

#没有发现,接着就是vmstat查看正常,iostat,free -m,一切正常,有几个操作未截图

wKiom1g0DkWTQZGpAADFotDhczk686.png-wh_50

#当这一切都正常的时候人有点懵逼,甚至都准备去看看源码uptime 的load值是怎么计算出来的

然而找到了代码块并看不懂,继续查看问题,执行了netstat查看到有syn_recv这就证明有服务建立

连接失败,于是找到这个程序,然后netstat -tnlp|grep 看了一下。wKiom1g0D_SjO9GYAAEmK9uWXnc341.png-wh_50

#开始怀疑这个java程序有问题,于是查看日志,当天是11月22号,而程序日志在11月20号5点32分就停了,于是确定程序问题。

wKiom1g0DkOCr0AcAADVbrW7rM8259.png-wh_50

#执行重启tomcat命令,这个就不用讲了,进入bin目录shutdown.sh 发现进程没了之后startup.sh

然后等了几分钟load就降下来了

wKioL1g0Dt3he_daAABQlqXR4TA513.png-wh_50


纪录一下处理故障的思路和经历,说起来比较轻松,但是实际还是花了一定的时间,在执行netstat之前毫无思路,卡了一段时间,都准备翻阅源码,比较尴尬,而且也没找到更深层次的原因。