load average 是就绪或不可中断状态进程的平均数量,需结合 cpu 核心数判断;uptime 显示 1/5/15 分钟值,推荐关注第三个;/proc/loadavg 最稳定;top 的 load average 与 %cpu(s) 完全不同源。

load average 不是 CPU 使用率,也不是百分比数字——它代表的是“就绪或不可中断状态”的进程平均数量。直接看数值本身没意义,必须结合 CPU 核心数判断。
uptime 是最快捷的负载快照
执行 uptime 就能立刻看到三个关键值:load average: 0.45, 0.32, 0.28。它们分别对应过去 1、5、15 分钟的平均负载。
- 这个输出稳定、无格式干扰,适合脚本或快速扫一眼
- 不要只盯第一个数(1 分钟值),它跳动大;重点关注第三个(15 分钟值),反映趋势
- 如果你用在监控告警里,
uptime比top更可靠——因为top输出会随终端宽度、locale 变化,解析容易出错
/proc/loadavg 是最底层、最稳定的来源
所有负载数据最终都来自这个文件,uptime 和 top 都是读它。直接读取避免了命令行解析风险:
-
awk '{print $1,$2,$3}' /proc/loadavg提取三值,结果干净无干扰 - 第四字段形如
2/124:斜杠前是“当前就绪 + D 状态进程数”(瞬时排队人数),比 load average 更接近此刻压力 - 第五字段是最近创建的进程 PID,基本不用管
top 的 load average 行容易被误读
top 启动后第一行确实显示 load average,但很多人混淆它和第三行的 %Cpu(s):
-
load average和%Cpu(s)完全不同源:前者统计队列长度,后者统计 CPU 时间片分配 - 负载高 +
%id高(比如 90%)→ 说明大量进程卡在 D 状态(I/O、锁、NFS hang),CPU 其实空闲 - 负载正常 +
%us + %sy接近 100% → 才是真·CPU 计算瓶颈 - 按
1键可展开看每颗 CPU 核心使用率,避免单核打满而其他核闲置却被忽略
真正难的不是“怎么查”,而是“怎么判”。load average 本身不告诉你瓶颈在哪——它只是个总和信号。你得配合 vmstat 1 看 r(就绪队列)和 b(阻塞进程),再用 pidstat -u 1 或 ps -eo pid,comm,state,pcpu | awk '$3=="D"' 定位具体卡住的进程。否则光盯着那个 2.45,什么也干不了。











