美文网首页环境运维
线上java服务器CPU使用率高问题定位

线上java服务器CPU使用率高问题定位

作者: wuqingfeng | 来源:发表于2022-07-25 20:34 被阅读0次

问题描述

线上服务器,cpu占用高,需要对该问题进行定位解决。

1.寻找cpu占用高的程序

1.1 执行top -c ,显示进程运行信息列表
1.2 键入P (大写p),进程按照CPU使用率排序


image.png

从上面的图片可以看到,cpu占用高的进程为3675,需要对该进程进行追查。

2. 查找cpu消耗高的线程

2.1 top -Hp 3675,显示一个进程的线程运行信息列表
2.2 键入P (大写p),线程按照CPU使用率排序


image.png

从上图可以看出,cpu使用率高的进程id为3676。

3. 线程号转换为16进制

在shell中,使用如下指令

printf “%x” 3676

将cpu使用高的线程3676转换为16进制为e5c,该转换也可以使用计算器完成。

4.使用jstack查找cpu占用高的线程

jstack 3675|grep '0xe5c' -C5 --color
image.png

由图片可以看出,main线程中有代码cpu占用高,接下来去查main线程代码即可。

相关文章

网友评论

    本文标题:线上java服务器CPU使用率高问题定位

    本文链接:https://www.haomeiwen.com/subject/katairtx.html