一次 Linux 服务器负载飙高的排查顺序

举报
yd_296783949 发表于 2026/11/06 16:59:13 2026/11/06
【摘要】 深夜监控告警:一台跑 Web 服务和定时任务的 Linux 服务器 load average 冲到 28,SSH 卡顿,页面响应变慢。下面是我实际走的排查顺序:先看是真忙还是在等,先定位瓶颈,再动进程。第一步:uptime 看 load 与核数关系。执行 uptime 和 nproc,看 1、5、15 分钟 load。load 是排队等 CPU 的进程数,必须结合核数判断:8 核机器 loa...

深夜监控告警:一台跑 Web 服务和定时任务的 Linux 服务器 load average 冲到 28,SSH 卡顿,页面响应变慢。下面是我实际走的排查顺序:先看是真忙还是在等,先定位瓶颈,再动进程。

第一步:uptime 看 load 与核数关系。执行 uptime 和 nproc,看 1、5、15 分钟 load。load 是排队等 CPU 的进程数,必须结合核数判断:8 核机器 load 8 只是跑满,load 28 是严重排队;1 核机器 load 2 已很吃力。

第二步:top 区分 CPU 还是在等 IO。看 %Cpu(s) 一行:us 高是用户进程真在算,sy 高看系统调用或锁,wa 高说明大量进程在等磁盘 IO,id 近 0 说明 CPU 已无空闲。按 1 看单核:若某一核跑满、其余空闲,可能是单线程或绑核问题。

第三步:vmstat 看 r/b 列与 si/so。执行 vmstat 1 5:r 是等 CPU 的进程数,长期大于核数即 CPU 排队;b 是不可中断睡眠进程数,持续大于 0 多是磁盘或网络 IO 在拖后腿。so 持续大于 0 说明内存不足已换页。

第四步:iostat 看磁盘 util。执行 iostat -x 1 3,重点看 %util 和 await:%util 近 100% 说明磁盘饱和,await 大说明单次 IO 很慢。再看 r/s、w/s,区分读多还是写多,配合 iotop 找写盘最凶的进程。

第五步:D 状态与僵尸进程。用 ps aux 看 STAT:D 状态是不可中断睡眠,多在等磁盘或 NFS,kill -9 也杀不掉,只能等 IO 恢复或处理底层存储;Z 是僵尸进程,本身不占 CPU 和内存,但父进程不回收会越积越多,应让父进程回收或重启父进程。

排查清单:1. uptime + nproc,判断 load 是否超核数;2. top 看 us/sy/wa/id,按 1 看单核,锁定嫌疑进程;3. vmstat 1 5 看 r/b、si/so,区分 CPU 排队、IO 等待和内存换页;4. iostat -x 看 %util、await,iotop 定位读写凶手;5. ps aux 处理 D 状态和僵尸进程。按此顺序走一遍,多数负载飙高十几分钟内能定位原因。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。