线上服务器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代码,发现代码里是个死循环。发现不是自己写的,私下轻轻的喷了那个写出该段代码的老哥,并向技术总监和实施汇报结果。

猜你喜欢

转载自blog.csdn.net/A___B___C/article/details/107769289
今日推荐