- 查看CPU占用过高的进程:
# top指令查看当前系统的CPU占用情况
top
CPU占用
- 查看该进程中是哪个线程占用CPU其中26637是示例的进程id:
# 查看该进程的所有线程的完整信息
ps -H -aux | grep 26637
# 查看该进程的所有线程的简略信息(如进程id,线程id,cpu占用率,进程描述等)
ps H -eo pid,tid,%cpu,comand --sort=-%cpu | grep 26637
查看线程号
- 根据进程号+线程号排查(也可以使用带可视化界面的jconsole或者jvisualvm工具排查)
# jstack {进程id}
jstack 26637
jstack查看线程详情
-
将第二部中的对应的现场id转换为16进制进行检索,其中nid是进程号,例如换算出来的id是6884:
线程详情 - 根据上一步的进程信息找到对应的代码位置,排查问题所在。
网友评论