码迷,mamicode.com
首页 > 其他好文 > 详细

如何优雅排查现网服务器cpu飙高的问题

时间:2021-01-01 12:34:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:log   pid   也有   执行   线程   个人   min   scripts   服务器   

原文:https://www.cnblogs.com/xrog/p/14200937.html

1.排查问题的思路

1.查看java进程id ps -ef|grep java

技术图片

 

 

 

2.使用top -Hp 进程id 查看cpu比较高的线程

技术图片

 

 

3.执行jstack 进程id > threadStack进程id.log 命令

 技术图片

 

 

4.使用printf %x  线程的PID 命令,将线程的将线程的PID转为十六进制

技术图片

 

 

5.在jstack导出的文件中查找第4步得到的十六进制线程pid

可以用vim的查找功能/0x1234,或是grep 0x1234 -A 20

技术图片

 

 

根据线程堆栈跟踪代码,解决问题。

 ps: 如果找不到,多执行几次步骤2、3(因为线程是不断变化的,所以需要手速)

 

2.如何提升效率

有没有发现上面的步骤很繁琐,而且非常考验个人手速

推荐工具(思路沿用上面的思路 工具化提升生产力)

1.下载&&解压工具 

wget --no-check-certificate https://github.com/oldratlee/useful-scripts/archive/release-2.x.zip
unzip release-2.x.zip

cd useful-scripts-release-2.x/

技术图片

 

 

2.执行工具
show-busy-java-threads -p <指定的Java进程Id>
技术图片

 

 更多姿势参照:https://github.com/adminkk/useful-scripts/blob/dev-2.x/docs/java.md#-show-busy-java-threads

当然阿里的arthas也有很多姿势 参照:https://alibaba.github.io/arthas/

 

如何优雅排查现网服务器cpu飙高的问题

标签:log   pid   也有   执行   线程   个人   min   scripts   服务器   

原文地址:https://www.cnblogs.com/xrog/p/14200937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!