假如生产环境出现cpu占用过高,请谈谈你的分析思路及定位

今日份鸡汤:趁现在还有期待,要记得你心中的星辰大海~

这种问题排查过程其实就是:结合 linux命令 和 jdk命令 一块分析。

整体步骤:
1、先用top命令找出cpu占比最高的。
2、ps -ef 或者jps进一步定位,得知是一个怎样的后台程序在给我们惹事。
3、定位到具体的线程或者代码。
4、将需要的线程id转化成16进制格式(英文小写格式)。
5、jstack 进程id | grep tid(十六进制线程id英文小写) -A60

具体步骤如下:

image.png

1、先用top命令找出cpu占比最高的。


image.png

2、ps -ef 或者jps进一步定位,得知是一个怎样的后台程序在给我们惹事。


image.png

3、定位到具体的线程或者代码
ps -mp 进程 -o THREAD,tid,time
参数解释:-m:显示所有的线程 -p:pid进程使用cpu的时间 -o:该参数后是用户自定义格式


image.png

4、将需要的线程id转化成16进制格式(英文小写格式)。
两种方式:
(1)命令方式:printf “%x\n” 有问题的线程id
(2)在线工具方式:


image.png

5、jstack 进程id | grep tid(十六进制线程id英文小写) -A60


image.png

你可能感兴趣的:(假如生产环境出现cpu占用过高,请谈谈你的分析思路及定位)