上一篇 下一篇 分享链接 返回 返回顶部

CPU 跑满怎么找到真凶

发布人:泮崵 发布时间:8小时前 阅读量:1

负载高不等于 CPU 忙,先分清用户态、内核态和 IO 等待。同一件事有很多种做法,选哪种取决于你的系统版本和线上是否允许中断。

下面按“先判断范围、再处理、最后防复发”的顺序展开,涉及 CPU 100、top 的关键动作都给了具体做法,可以照着走。

第一眼

top 看 %us 与 %sy 谁高,us 高查应用,sy 高查系统调用。

条件允许的话先在测试环境走一遍,再动生产。

按线程排查

top -Hp 进程号 找最热的线程。

容易踩的坑:常见的坑是只处理表象:症状消失就收工,根因还在,过几天又复发。

历史回溯

sar 或 pidstat 看过去一小时曲线。

动手前先确认影响范围,能局部处理就不要影响整机。

常见来源

死循环、正则回溯、爬虫未限速、编译任务。

常见问题

Q:CPU 100这类问题,最快的判断办法是什么?
先确认现象的范围:只有单台还是全部、只在某个时段还是持续。范围一缩小,原因基本就浮出来了。

Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。

小结

回到这篇的四个环节:第一眼、按线程排查、历史回溯、常见来源。以上步骤按顺序做完,同类故障基本能自己处理。留一份操作记录,下次能省一半时间。

相关阅读:OOM killer 触发后怎么定位、内存占用高怎么查真实原因、inode 用满了怎么办。

目录结构
全文
微信公众号 微信公众号
微信客服 微信客服
电子邮箱: admin@qyun.net