排查生产上CPU使用率过高异常记录
-
使用TOP命令查看cpu使用率:
TOP
-
使用ps命令查看程序的tid:
ps -mp pid -o THREAD,tid,time
Pid要替换项目程序的pid,如:ps -mp 15669-o THREAD,tid,time
,得到占用cpu最高的TID
-
将这3个TID转为16进制,为等会在jstack中查找方便:
printf “%x\n” TID
-
jstack查看进程信息: jstack -pid|grep TID查询目前三个进程是否在运行状态,如下图,是在运行状态中的。:
jstack -Pid|grep TID
-
使用jstack查看详细的信息:
jstack PID
如:jstack 15669
,查找到nid=0x3ec7的内容。得到具体的代码行数。
-
最后可把jstack信息导出保存下来:
jstack -l PID>> 保存路径/test.txt
,如jstack -l 26960 >> test.txt