点赞
评论
收藏
分享
举报
容器cpu使用率持续100%的问题定位方法
发表于2020-05-28 09:53

浏览 1.9k

1、问题现象:在容器管理上监控到受理中心容器cpu使用率持续大于100%

image.png

2、定位步骤:

1)ssh对应主机,行命令 docker ps -a |grep 端口,可以取到容器id。

2) 进入容器docker exec -it 容器id bash。

3)执行top命令,取耗cpu线ID。

top -p 1,持续观察进程cpu使用率,按shift + h 切换成线程cpu使用情况,持续观察可以获取到cpu使用率高的线程pidimage.png

4)用算器或者printf "%x\n" 制的pid 例如 printf "%x\n" 640

以上命令可以获取十六进制的javacore中的nid,注意十六进制用计算器获得的结果大写字母要转换成小写。

5) 获取javacore: jstack -l 1 >a1.log。

6)用vi命令在a1.log找第四步取到的十六nid ,即可定位耗cpu线程堆栈。

例如:

image.png

7)根据线程堆中指示的业务码进一步分析。

image.png

3、根据业务码发现产生了while死循的可能,一步分析和修改业务码。


已修改于2023-03-08 22:14
本作品系原创
创作不易,留下一份鼓励
陈友行

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
陈友行
这家伙很懒还未留下介绍~
5
文章
0
问答
24
粉丝
相关文章