通俗的讲:
我们服务器中跑了很多项目,先找到java占用cpu高的进程,再找到占用cpu高的线程,逐个定位到具体位置。
1.登录linux服务器:使用top命令
top
或者:找出服务器的所有java进程(有可能跑了不止一个)
ps -ef | grep java
或者
jps
2.从进程里面找线程(xxx就是进程号)-H
表示以线程的维度展示,默认以进程维度展示。
top -Hp xxx(进程号)
3.把线程号转成16进制
printf '%x' 6412(线程号)
4.用jstack 生成文件(6395其实就是进程号)
jstack 6395 > x.txt
生成的文件,会存储在当前目录下:
vi 文件,从文件里面查询 那个16进制号,进行定位代码分析