线上服务器CPU100%排查,Linux进程消耗查看
相关博文:
博客园: chen_hao:告诉你如何回答"线上CPU100%排查"面试问题
博客园: liuge36:linux 进程消耗查看
生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,如何定位出问题呢?
1、排查步骤
- 查消耗cpu最高的进程PID
- 根据PID查出消耗cpu最高的线程号
- 根据线程号查出对应的java线程,进行处理。
1.1Linux下排查
1.1.1查消耗cpu最高的进程PID
执行命令:
执行top -c ,显示进程运行信息列表。按下P,进程按照cpu使用率排序
1.1.2根据PID查出消耗cpu最高的线程号
执行命令:
top -Hp 3033 ,显示一个进程的线程运行信息列表。按下P,进程按照cpu使用率排序
这是十进制的数据,转成十六进制为0xbda
1.1.3根据线程号查出对应的java线程,进行处理
执行命令,导出进程快照:
jstack -l 3033 > ./3033.stack
然后执行,grep命令,看线程0xbda做了什么
cat 3033.stack |grep 'bda' -C 8
2、linux 进程消耗查看
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head