参考:https://www.lanhusoft.com/Article/684.html
https://www.jianshu.com/p/8d5782bc596e
二、java定位进程
在服务器中终端输入命令:top
查看显示为: %CPU下超过100的进程,此时的PID ,如5421
三、定位问题进程对应的线程
然后在服务器中终端输入命令:top -Hp 5421
作用是查看进程内部线程资源占用情况。
此时继续查看%CPU下过高的线程,如5463.
但java线程堆栈是采用16进制,需把10进制的5463转16进制,如
printf "%x\n" 5463
输出结果:
1557
四、通过jstack命令找到线程对应代码
现在我们需要用到之前的进程ID和线程的16进制数字。
在服务器中终端输入命令:jstack -l 5421|grep 1557 -C 8
grep后页-C 8意思是显示查找目标行的前后8行,不加的话就只有一行,可能一时看不出问题来。
当然你也可以更改一下:
-A 8后8行
-B 8前8行
832

被折叠的 条评论
为什么被折叠?



