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

浏览 6.2k

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
本作品系原创
创作不易,留下一份鼓励
陈友行

暂无个人介绍

关注



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

按点赞数排序

按时间排序

行业级分享👍🏻
赞同

0

回复举报

发表于2020-05-28 15:37



回复0学0
回复
关于作者
陈友行
这家伙很懒还未留下介绍~
5
文章
0
问答
24
粉丝
相关文章
nginx一向以高性能著称,缓存是其中一大利器,本文将分享nginx中各个级别缓存的原理和内部是如何实现的。0.什么是缓存缓存存在计算机中的各个领域,其目的都是为了提升处理速度,可以说是以空间换取了时间。但事实并不是这么简单,因为引入了缓存,就要处理一致性、过期处理、缓存策略和命中率等。例如CPU有几级缓存,memcached作为内存缓存服务器,redis也是,还有文件缓存服务器,CDN等。总而言之,访问目标后‘备份’到某中间层,下次再访问时,直接从中间层获取,加快了访问速度。所以目标越往后,处理速度越慢,程序要做的就是尽量命中在前面,不要让访问穿透到后面目标。1.nginx缓存nginx属于web应用服务器,是典型的request/response模式。整体而言,nginx的缓存可以总结为3个:304响应、静态级别缓存、动态级别缓存。下面一一介绍:*304响应这个其实不算真正意义上的缓存,之所以提出来,是因为它的重要性,也因为涉及客户端的缓存。当客户端访问某URL时,如果服务器响应304状态码,其意义是告诉客户端您访问的东西没有变化过,内容从自己本地获取。浏览器就是典型的应用。当你第
点赞 5
浏览 5.2k
原文作者:NGINX中文社区官方团队 原文链接:完整会议议程:NGINXSprintChina2022年度线上大会 转载来源:NGINX官方网站 带上您的潜水服、调节器、潜水电脑表和水下摄像机,跟随我们在NGINXSprintChina2022年度线上会议期间,一起深潜到NGINX的斑斓世界吧! 12月1日,加入到一年一度的NGINXSprintChina2022线上大会中,了解最热的行业趋势以及NGINX的最新动态,并探索NGINX及其周边生态的使用案例、技术解析和运维实践。您还将有机会与NGINX官方团队、行业大咖以及社区中的开发者和技术爱好者共同探讨交流。 在此次深潜之旅期间,多位社区大咖和资深用户将与您分享他们的经验和见解,与您一同探索NGINX的无限可能。同时NGINX官方团队也将借此机会与社区进行深入交流,期待听到您的声音和反馈。 扫描上方海报二维码,立即免费注册NGINXSprintChina2022。您将通过邮件接收此次会议的相关信息,包括参会福利、会前提醒、参会链接、资
点赞 1
浏览 3.8k
AI Gateway 简化了应用和 AI 模型之间的交互,并且提供了一种控制安全性、可观测性、治理和成本管理的方式。阅读本文,了解详情。访问 NGINX 中文官方开源社区(nginx.org.cn)了解详情。
点赞 0
浏览 10.1k