返回首页

Linux Load 高但 CPU 低的排查思路 — 系统化诊断流程

📅 创建于 2026-05-28 🔄 更新于 2026-05-28 📝 1003 字

来源:刘军军 | 发布日期:2026-04-12

Linux Load 高但 CPU 低的排查思路

核心认知:Load 高但 CPU 低,90% 是磁盘 I/O 问题。排查本质是通过逐层剥离找到瓶颈资源。

排查决策树

Load 高 + idle > 50% → vmstat 1
  ├─ wa > 10% 且 b > 0        → 磁盘 I/O 瓶颈 ← 最常见
  │    └─ iostat → iotop → 定位 I/O 进程
  ├─ si/so 持续 > 0            → 内存不足 / swap 频繁
  │    └─ free → ps 排序内存 → OOM dmesg
  ├─ D 状态进程多(ps D)       → I/O 阻塞(NFS/驱动)
  │    └─ pstree → dmesg → 检查 NFS
  ├─ Z 状态进程多(ps Z)       → 僵尸进程堆积
  │    └─ 查父进程 → 修复/重启
  └─ 以上都不是                → 网络/其他
       └─ ss → ip link → journalctl

详细排查步骤

第一步:确认现象(5分钟)

# 1.1 查看 Load Average
uptime
# 输出示例:load average: 12.34, 10.56, 8.78

# 1.2 查看 CPU 使用率
top -bn1 | head -10
# 重点看:%Cpu(s): 5.0 us, 3.0 sy, 0.0 ni, 85.0 id, 7.0 wa, ...
# id: idle(空闲), wa: iowait(等待 I/O)

# 1.3 查看 CPU 核心数
nproc

# 1.4 查看总进程数
ps aux | wc -l

判断标准:

  • Load > CPU 核心数 × 2 → 负载过高
  • idle > 50% → CPU 使用率低
  • wa > 10% → 可能有 I/O 问题

第二步:检查进程状态(10分钟)

# 2.1 所有进程状态分布
ps aux | awk '{print $8}' | sort | uniq -c | sort -rn

# 2.2 D 状态进程(不可中断,通常在等 I/O)
ps aux | awk '$8 ~ /D/ {print $0}'

# 2.3 Z 状态进程(僵尸进程)
ps aux | awk '$8 ~ /Z/ {print $0}'

# 2.4 进程树
pstree -p | head -50

# 2.5 按资源排序进程
ps aux --sort=-%cpu | head -11
ps aux --sort=-%mem | head -11

关键判断:

  • D 状态进程多 → I/O 阻塞
  • Z 状态进程多 → 僵尸进程堆积
  • 没有明显高 CPU 进程 → 不是 CPU 问题

第三步:检查 vmstat(关键!10分钟)

vmstat 1 5

输出详解:

说明 告警值
r 运行队列进程数 > CPU 核心数
b 等待 I/O 的进程数 > 2
wa CPU 等待 I/O 时间 % > 10%
si swap in(从磁盘读入内存) > 0(持续)
so swap out(从内存写入磁盘) > 0(持续)

判断:

  • wa 高 + b 高 → 磁盘 I/O 瓶颈(最常见)
  • si/so 持续 > 0 → 内存不足,频繁 swap

第四步:深入分析 I/O 瓶颈(15分钟)

仅在 vmstat 发现 wa 高时执行。

# 4.1 磁盘 I/O 详细统计(需要 sysstat)
iostat -x 1 3

# 4.2 进程 I/O 统计(需要 sysstat)
pidstat -d 1 3

# 4.3 磁盘挂载和使用
df -h
lsblk

# 4.4 磁盘错误
dmesg | grep -i error | grep -i sd

iostat 关键指标:

指标 说明 告警值
%util 设备繁忙时间百分比 > 80%
await 平均 I/O 等待时间(ms) > 50ms
svctm 平均服务时间(ms) > 20ms

常见 I/O 瓶颈原因:

  • 大量日志写入(应用日志、Nginx 日志等)
  • 数据库慢查询(MySQL、PostgreSQL 等)
  • 备份任务正在运行
  • 磁盘性能差(机械盘 vs SSD)
  • 磁盘故障或损坏

第五步:检查内存和 Swap(10分钟)

仅在 vmstat 发现 si/so 高时执行。

# 5.1 内存详细使用
free -h

# 5.2 OOM Killer 日志
dmesg | grep -i oom

# 5.3 查看占用内存最多的进程
ps aux --sort=-%mem | head -16

内存问题判断:

  • free 很小,buffer/cache 也小 → 真的内存不足
  • swap used 持续增长 → 内存压力大
  • 某个进程 %MEM 特别高 → 内存泄漏

第六步:检查其他可能原因(10分钟)

# 6.1 网络连接统计
ss -s
ip -s link

# 6.2 NFS 挂载(如果有)
mount | grep nfs

# 6.3 系统日志
journalctl -n 50 --no-pager

# 6.4 僵尸进程的父进程
ps -efL | grep -i defunct

# 6.5 内核参数
sysctl vm.dirty_ratio vm.dirty_background_ratio vm.swappiness

一键诊断脚本

cat << 'EOF' > /tmp/diagnose.sh
#!/bin/bash
echo "=========================================="
echo "  Linux Load 高 CPU 低 快速诊断"
echo "=========================================="

echo "[1] Load Average 和 CPU 核心数"
uptime && echo "CPU 核心数: $(nproc)"

echo "[2] CPU 使用率"
top -bn1 | head -5

echo "[3] 进程状态统计"
ps aux | awk '{print $8}' | sort | uniq -c | sort -rn | head -10

echo "[4] D 状态进程(不可中断)"
d_count=$(ps aux | awk '$8 ~ /D/ {count++} END{print count+0}')
echo "D 状态进程数: $d_count"
[ $d_count -gt 0 ] && ps aux | awk '$8 ~ /D/ {print $0}' | head -5

echo "[5] VMSTAT"
vmstat 1 2 | tail -1

echo "[6] 内存使用"
free -h

echo "[7] 磁盘使用"
df -h | grep -v tmpfs

echo "=========================================="
echo "提示:"
echo "- 如果 wa > 10%,检查磁盘 I/O"
echo "- 如果有 D 状态进程,检查 I/O 阻塞"
echo "- 如果 si/so > 0,检查内存"
EOF
chmod +x /tmp/diagnose.sh

常见场景总结

场景 Load CPU idle wa b si/so 原因
场景 1 磁盘 I/O 瓶颈(最常见)
场景 2 内存不足,swap 频繁
场景 3 大量 D 状态进程(NFS/驱动)
场景 4 僵尸进程堆积
场景 5 网络 I/O 瓶颈

应急处理(临时方案)

# 1. I/O 瓶颈 — 降低进程 I/O 优先级
ionice -c 3 -p <PID>

# 2. 内存不足 — 清理缓存(谨慎使用!)
sync; echo 3 > /proc/sys/vm/drop_caches

# 3. 重启有问题的服务
systemctl restart <service>

排查口诀

Load 高 CPU 低,先看 vmstat 的 wa wa 高是 I/O 卡,iostat 把磁盘查 wa 低看 si/so,内存不足 swap 跑 还有 D 状态多,不是 I/O 就是锁 按步排查别着急,问题总能找到底!

关键命令速查

目的 命令
看 Load uptime
看 CPU top
看进程 ps aux, ps aux --sort=-%mem
看 I/O vmstat 1, iostat -x 1, iotop
看内存 free -h
看网络 ss -s, ip -s link

关联链接

关联页面

页面关联点
linux-perf-troubleshooting-handbookLinux 服务器性能排查实战手册 — 60 秒快速摸底/4 大瓶颈排查/3 个实战案例/监控阈值/
nfs-troubleshooting-sopNFS 故障排查 SOP — 7 步排查法 / 6 类故障 / 4 大实战案例 / 生产最佳实践