用top定位那个进程cpu的占用过高,找到占用过高的pid
top
用ps命令进一步定位时哪个线程引起的cpu占用过高
ps H -eo pid,tid,%cpu | grep 进程id
jstack 进程id
jstack 32655
可以根据线程id找到有问题的线程,进一步定位到问题代码的源码行号。
将查找出来的线程号32665用计算器转换成16进制其结果为7F99
在报的异常中找到nid的值就可以找到对应的代码报错的位置
我们线上代码还有可能出现死锁的情况,同样页可以使用jstack 进程id来诊断
jstack 32752
观察输出的结果时出现了死锁