24、服务器CPU持续飙高的排查思路与方案

背景:

服务部署在Docker容器中,Prometheus监控中心配置相关告警规则,某台机器因CPU使用率较高而触发告警

相关机器下排查思路与方案:

1、获取CPU高对应的服务:

# Docker 容器的实时资源使用情况
sudo docker stats

2、进入指定容器:

sudo docker exec -it <容器ID> /bin/bash

3、查看所有正在运行的 Java 进程(列出进程 ID 和启动的类名或 JAR 文件名)

jps

4、根据进程 ID查看占用CPU高的线程

# top -Hp 1
top -Hp <进程ID>

5、将指定 PID 转为 16进制

# printf "%x\n" 60 =》 输出3c
printf "%x\n" <PID>

6、通过jstack分析对应线程堆栈信息,根据堆栈信息排查问题

# 分析线程堆栈信息(-A 20:表示输出 20 行)
# jstack 1 | grep '3c' -A 20
jstack <进程ID> | grep '<16进制PID>' -A 20

 

posted on 2025-04-23 11:30  爱文(Iven)  阅读(54)  评论(0)    收藏  举报

导航