主机 CPU 占用高,一般按“先定位进程 → 再定位线程/调用 → 再分析根因”的思路排查。下面给你一套实用排查流程(Linux 为主,兼顾通用思路)。
top
或更好用的:
htop
重点看:
%CPU 高的进程(USER、PID)load average 是否明显高于 CPU 核数在 top 中:
P(大写)按 CPU 排序如果是 Java、Go 等多线程程序:
ps -ef | grep 进程名
top -Hp PID
记下 高 CPU 的线程 ID(TID)
printf "%x\n" TID
jstack PID > jstack.log
然后在日志里搜:
nid=0x十六进制TID
常见原因:
vmstat 1
看:
us(用户态)sy(内核态)wa(IO 等待)pidstat -u -p PID 1
perf top -p PID
| 现象 | 可能原因 |
|---|---|
| 单进程 CPU 高 | 死循环、算法复杂、GC |
| 多进程 CPU 高 | 被攻击、脚本滥用 |
| sy 高 | 系统调用多、锁 |
| wa 高 | 磁盘 IO 瓶颈 |
| 突然飙升 | 上线、定时任务、流量突增 |
renice 19 PID
如果你愿意,可以告诉我:
top 截图或输出我可以帮你精准判断是哪一类问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。