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
浙公网安备 33010602011771号