这个其实在线上排查问题很常用的一个手段,记录下。
1.测试程序
public class App {
public static void main(String[] args) {
while (true) {
new Object();
}
}
}
2.打包放到服务器上运行
image.png
3.top查看,cpu飚满
image.png
image.png
4.开始反向查找cpu飙高的原因,由3可知pid为5144,
top -H -p {pid} 查看程序线程
image.png
5.可知线程id为5145,打印16进制
image.png
6.命令 jstack查看cpu飙高的源码位置
image.png
7.return;
网友评论