如何定位线上CPU飙高的问题

1.问题情景

我们的接口卡死,CPU飙高到打不开的网页

2.问题定位

2.1 top指令

通过top命令找到CPU耗用最厉害的那个进程的PID
直接输入top
如何定位线上CPU飙高的问题_第1张图片
Linux下的100%代表一个核心,如果是八核,最高可以到800%,这样才算满
然后通过PID找到CPU耗用最厉害的线程

2.2 通过top-h-p + 进程ID 指令

直接输入 top-h-p + 进程id,直接查找,可以发现哪些进程耗用比较厉害。

如上图,我们以100386这个进程ID为例。

第一步,需要将其转变成16进制,通过下面的命令:

printf’0x%x\n’ 线程PID

此时可以得到它的16进制。
在这里插入图片描述

第二步,我们需要结合

jstack 进程PID |grep 16进程PID -A 20
表示显示20行

然后就可以发现具体哪个代码,产生了问题。

你可能感兴趣的:(java)