这个其实在线上排查问题很常用的一个手段,记录下。
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;