服务器cpu占用100%,如何排查

旧巷老猫 提交于 2019-12-01 19:01:29

生产环境服务器出现cpu占用100%,如何排查?本文从linux和windows给出排查思路。

大致流程是找出进程的pid-找到进程下占用资源最大的线程-打印出进程快照

 

linux:

1.top -c找到占用cpu较高的进程,获取到[pid]

2.top -Hp [pid],查看该进程对应的线程,找到线程中占用cpu较高的线程id(tid)

3.jstack -l [pid] > /path/[pid].stack,打印出进程此时的快照

4.vi [pid].stack或者cat [pid].stack|grep '[tid]的16进制' -C 8,查看该线程在cpu占用100%时做了什么

 

windows:

1.在任务管理中找到占用cpu较高的进程,获取[pid]

2.使用Process Explorer获取该[pid]对应的线程,找到占用资源较高的线程id(tid)

3.cmd窗口中输入jstack -l [pid] > /path/[pid].txt

4.打开文件[pid].txt,查找[tid]的16进制所在的行,查看具体信息

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!