1.获取Java进程的pid
jps -l
2.查看占用cpu高,且占用时间长的线程
ps -mp pid -o THREAD,tid,time|sort -rn|head -n 20
or
top -H -p pid
3.将线程的tid转换为16进制
printf "%x\n" tid
4.导出CPU占用高进程的线程栈
jstack pid >> java.txt
5.查看java堆栈信息
cat java.txt | grep tid #tid为第三步中转换后的tid
or
jstack pid|grep tid -A 30
参考: