总体原理:先定位到CPU高的进程,再定位到线程,然后从jstack导出的文件中找到该线程对应的方法
-
使用
top
命令找到CPU高的进程
-
使用命令
shift + H
切换到线程模式,找到线程执行CPU高的线程号 -
把线程号转成16进制
print "%x\n" 40437
-
使用
jstack
命令,将线程文件dump下来
Jstack pid > tmp.txt
有可能导出的时候,cpu并没有飚高哦。间歇性的cpu高场景,dump要看运气
- 用刚刚转换的线程号,去dump出来的文件中检索定位,可以定位到方法.