1、操作说明
排查过程中涉及到的基础命令参考语法描述,本文档提供的例子都是根据截图里的数字填写的,实际排查需根据命令返回的结果填写。
每一个命令查出来信息都要记录起来,都会复用
2、排查过程
2.1.查找进程号
查看进程占用资源情况:
语法:top

可以看出java的两个进程22714、12406占用CPU很高。
下文针对图中第一条记录22714这个进程进行排查(实际排查中,占用高的都看)
2.2.查找线程号
查看线程占用资源情况:
语法:top -H -p <pid>
其中为top命令查出的进程号,那么命令改为top -H -p 22714。

这里可以看出该java应用,有3个线程CPU占用都到88%左右。
下文针对图中第一条记录15664这个线程进行排查(实际排查中,占用高的都看)
2.3.查询Java堆栈信息
1)、首先,将查出的线程号转换为十六进制数字
语法:printf %x 线程号
其中,线程号前面查出为15664,那么命令改为:printf %x 15664
测试返回结果:3d30
2)、然后,使用jstack命令查询堆栈信息
语法:jstack | grep -a 线程id(十六进制)其中为top命令查出的进程号,这里为22714,线程id为上面小节查出的3d30,那么命令改为:jstack 22714 | grep -a 3d30

网友评论