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號