如何排查现网服务器cpu飙高
原文: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.zipunzip 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/
原文转载:http://www.shaoqun.com/a/504210.html
askme:https://www.ikjzd.com/w/2459
网络星期一:https://www.ikjzd.com/w/80
原文:https://www.cnblogs.com/xrog/p/14200937.html1.排查问题的思路1.查看java进程idps-ef|grepjava2.使用top-Hp进程id查看cpu比较高的线程3.执行jstack进程id>threadStack进程id.log命令4.使用printf%x线程的PID命令,将线程的将线程的PID转为十六进制5.在jstack导出的文件中查
瀚霖:瀚霖
三维度科技:三维度科技
十一国庆广州旅游推荐:十一国庆广州旅游推荐
IP Accelerator:IP Accelerator
从西藏到尼泊尔在拉萨可以办尼泊尔的签证吗?:从西藏到尼泊尔在拉萨可以办尼泊尔的签证吗?
Comments
Post a Comment