直接回答:load average 是系统的平均负载,三个值分别是 1、5、15 分钟内处于"可运行"状态的平均任务数。Linux 与多数 Unix 的关键区别在于:统计口径不仅包括运行中和就绪队列里的进程(R 状态),还包括不可中断睡眠(D 状态,通常在等磁盘 I/O)的进程,所以 load 高不一定代表 CPU 忙。

展开解析:单核机器上 load=1 表示 CPU 刚好打满;N 核机器要除以 N 来看,8 核 load=4 还有一半余量。判断瓶颈要结合其他指标:load 高且 %us 高是 CPU 密集;load 高但 CPU 空闲、%wa 高则是 I/O 密集,大量进程卡在 D 状态。这三个值本质是指数衰减滑动平均:1 分钟值对突发敏感,15 分钟值反映趋势,判断时先看长期值再看短期值。可用 uptimecat /proc/loadavg 查看,第四个字段如 3/512 表示当前可运行任务数和总任务数;配合 vmstat 1 看 r(就绪队列长度)和 b(阻塞进程数)两列定位。

实践要点:线上告警一般用"load/核数"持续超过阈值(如 0.7)触发;另外注意容器里读到的 load 是宿主机全局的,cgroup 并不隔离它。

追问方向:D 状态进程为什么不可中断、怎么产生的?load 高但 CPU 空闲如何一步步排查?为什么 Kubernetes 的 HPA 不直接拿 load 做扩缩容依据?