打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
k8s pod cpu飙升问题定位方法

1. 使用 docker stats 命令查看本节点容器资源使用情况,对占用CPU很高的容器使用

 docker exec -it <容器ID>  -n nameSpace  bash 进入。

或者执行 kubectl exec -it <容器ID>  -n nameSpace  bash 进入

2. 在容器内部执行 top 命令查看,定位到占用CPU高的进程ID,使用 top -Hp <进程ID> 定位到占用CPU高的线程ID。

3. 使用 jstack <进程ID> > jstack.txt 将进程的线程栈打印输出

4. 退出容器, 使用 kubectl cp podName:/文件存放路径/文件名 -n nameSpace ./文件存放路径/文件名拷贝至宿主机

5. 将2中占用CPU高的线程ID使用 printf '%x\n' <线程ID> 命令将线程ID转换为十六进制形式。假设线程ID为133,则得到十六进制85。在jstack.txt文件中定位到 nid=0x85的位置,该位置即为占用CPU高线程的执行栈信息。

6. 进行问题定位并解决

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux下采用ps、jstack命令排查命中java应用中占用CPU高的代码
线上系统性问题定位与方法论
Linux系统监控命令及如何定位到Java线程
Java虚拟机六:Java进程占用cpu过高问题分析
Linux排查Java程序占用CPU很高的解决办法
如何定位cpu占用率高的java线程?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服