线上服务器cpu飙升问题排查
今天实施突然反馈说医院线上的cpu一直在报警,报警阈值是cpu占用率超过80%并持续达到五分钟,然后我远程过去查看cpu使用情况发现cpu使用率一直100%。下面是我排查此次cpu飙升问题的步骤。
1、top 查看 cpu使用情况 图中是重启后的占用率仅供参考
2、top -c 查看cpu情况 按照比例倒序找到占用率最好的进程的PID
3、ps -mp [步骤2中查到的PID] -o THREAD,tid,time 产看改进程下的线程TID (tid情况仅供参考)
4、printf "%x" [步骤3中需要查看的TID] 该步骤会把TID 转换成16进制的值
5、jstack [步骤2中查到的PID] | grep [步骤4转换成的值] -A 10 -B 10 默认查10行 该步骤打印出堆栈信息
6、通过堆栈信息找到对应的java代码,发现代码里是个死循环。发现不是自己写的,私下轻轻的喷了那个写出该段代码的老哥,并向技术总监和实施汇报结果。