服务器 CPU 飙高一般可以按「先看现象 → 定位进程 → 定位线程 → 定位代码/原因」的思路排查。下面给你一套实战可操作的排查流程(以 Linux 为例)。
top
# 或
htop
关注:
%Cpu(s):us(用户态)、sy(系统态)、id(空闲)在 top 中按:
P:按 CPU 排序top -Hp <PID>
printf "%x\n" <TID>
例如:
printf "%x\n" 12345
# 输出 3039
jstack <PID> > jstack.log
在 jstack.log 中搜索:
nid=0x3039
可以看到:
特征:
✅ 解决:
jstat -gcutil <PID> 1000
特征:
✅ 解决:
jstack 中常见:
BLOCKED
waiting to lock
✅ 解决:
perf top
常见于:
perf top
可以看到:
uptime
vmstat 1
mpstat -P ALL 1
pidstat -u 1 -p <PID>
如果你愿意,可以告诉我:
我可以直接帮你针对性定位。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。