排查方法一
1、首先查找CPU占比高的进程ID: top (直接top命令即可)
2、查找该进程下CPU占比高的线程:top -Hp pid 或者 ps -mp pid-o THREAD,tid,time
3、把CPU占比较高的线程tid进行16进制转换: printf "%x\n" tid
4、jstack pid |grep tid -A 30 显示堆栈信息 jstack 19987| grep -A 50 16644
排查方法二
1、首先查找CPU占比高的进程ID: top (直接top命令即可)
2、查找该进程下CPU占比高的线程:top -Hp pid 或者 ps -mp pid-o THREAD,tid,time
3、把CPU占比较高的线程tid进行16进制转换: printf "%x\n" tid
4、把进程的java代码输出保存到一个日志文件中:jstack pid > error.txt
5、在error.txt文件中查询线程对应的代码:grep -C50 '关键字' error.text --color (‘关键字’是上面第三步得到的16进制字符串)
网友评论