今日份鸡汤:趁现在还有期待,要记得你心中的星辰大海~
这种问题排查过程其实就是:结合 linux命令 和 jdk命令 一块分析。
整体步骤:
1、先用top命令找出cpu占比最高的。
2、ps -ef 或者jps进一步定位,得知是一个怎样的后台程序在给我们惹事。
3、定位到具体的线程或者代码。
4、将需要的线程id转化成16进制格式(英文小写格式)。
5、jstack 进程id | grep tid(十六进制线程id英文小写) -A60
具体步骤如下:
1、先用top命令找出cpu占比最高的。
2、ps -ef 或者jps进一步定位,得知是一个怎样的后台程序在给我们惹事。
3、定位到具体的线程或者代码
ps -mp 进程 -o THREAD,tid,time
参数解释:-m:显示所有的线程 -p:pid进程使用cpu的时间 -o:该参数后是用户自定义格式
4、将需要的线程id转化成16进制格式(英文小写格式)。
两种方式:
(1)命令方式:printf “%x\n” 有问题的线程id
(2)在线工具方式:
5、jstack 进程id | grep tid(十六进制线程id英文小写) -A60