top -c
查看所有的进程- 在1的基础上键入
P
让cpu从高到底排序 - 选择2中cpu占比最高的pid进程
top -Hp pid
查看pid对应的线程对cpu的占比- 在4的页面键入
P
让当前pid的线程cpu占比从高到低排序 - 获取第5步骤中的线程占比最高的线程id
- 使用
printf "%x\n" tid
转为16进制(jstack中线程id是16进制) - 打印指定pid下指定tid的jstack日志,
jstack pid | grep tid -C 10 --color
(打印指定线程位置前后10行) - 根据堆栈信息找到代码块