使用top+jstack命玲;JMX/Jconsole工具等等;开启-D pringGCdetail参数
接下来介绍top+jstack
1. 先用top找到占用cpu最多的进程
2. 在用 top -Hp 显示线程信息
//-H 显示线程信息,-p指定pid jstack 线程ID
#$top -Hp 9573
3.打印进程堆栈日志
# 注意是进程ID
$jstack 9573 > 1.txt
4. 定位到某个线程
先将线程号转化为16进制的表示方式
$printf %s 9574
//在文件中搜索过滤并打印30条数据
$cat 1.txt | grep -A 30 2566
可以清楚的看到,红框位置就是具体问题代码。