1,使用top命令,找到java进程的PID
2,根据进程定位线程
ps -mp 进程ID -o THREAD,tid,time | sort -rn
#显示结果如下:
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 90.5 19 – – – – 9521 01:16:48
root 90.1 19 – – – – 9522 01:02:16
3.将需要的线程ID转换为16进制格式:
printf "%xn" 9521
2531
4.最后使用jvm命令打印线程的堆栈信息
jstack 进程ID |grep 2531 -A 30
5.这样就找到占用java,cpu资源的代码了,接下来还得分析代码执行的原因了