负载平均值:三个数字的含义
如何正确解读您 VPS 档位上的负载平均值,为什么 CPU 空闲时也可能出现高负载,以及什么时候这些数字才真正需要处理。
更新于 2026年8月23日
uptime 命令和 htop 顶部的第一行会显示三个数字——1、5、15 分钟的平均负载。这是 Linux 中最容易被误解的指标:它经常被误认为 CPU 负载。
它到底是什么
平均负载是指正在 CPU 上计算或正在等待磁盘的进程的平均数量。第二个组成部分正是造成混淆的原因:如果十二个进程都在排队等待磁盘,那么一台 CPU 几乎空闲的机器也可能显示 12 的负载。
uptime
# 14:22:03 up 9 days, 2:41, 1 user, load average: 3.41, 2.02, 1.15
cat /proc/loadavg
nproc # how many cores your plan has
什么算正常取决于核心数
经验法则很简单:负载等于核心数意味着机器满负荷运转且没有排队。
| 套餐 | 核心数 | 舒适 | 繁忙 | 排队 |
|---|---|---|---|---|
| VDS-1 | 1 | 最高 0.7 | 约 1 | 超过 2 |
| VDS-2 | 2 | 最高 1.4 | 约 2 | 超过 4 |
| VDS-3 | 4 | 最高 2.8 | 约 4 | 超过 8 |
| VDS-4 | 6 | 最高 4 | 约 6 | 超过 12 |
| VDS-5 | 8 | 最高 5.5 | 约 8 | 超过 16 |
| VDS-6 | 10 | 最高 7 | 约 10 | 超过 20 |
您要把这三个数字当作趋势来解读。5.0, 2.0, 1.0——负载刚刚上升,可能是您自己启动了某些东西。1.0, 2.0, 5.0——峰值已经过去,机器正在卸载。三个相近的大数字——持续过载,这才是需要处理的情况。
接下来该看哪里
高负载是症状,不是诊断。把原因拆解开来:
vmstat 2 5
r列数值很大(排队等待执行的进程)且us/sy很高——您碰到了 CPU 上限。去 htop 里找出罪魁祸首。b列数值很大且wa很高——您碰到了磁盘上限。下一步:iostat 和 iotop。si/so不断增长——正在进行交换,意味着内存即将耗尽,参见内存与交换。
htop 中处于 D 状态的进程正是那些等待 I/O 并把平均负载推高的进程。
什么时候该升级到更高套餐
忽略项目构建、软件包更新或夜间备份期间的一次性峰值。真正的信号是这样的:在控制面板 /hosting/vds/m/<id> 的每周 CPU 图表上,出现一个持续的平台期,平均负载始终高于核心数,而且罪魁祸首是您的生产应用而不是某个被遗忘的脚本。这时升级到更高套餐就有意义了:只能向上迁移,并需为已付费周期的剩余天数补差价。
常见误区
- 把负载和 100% 作比较。 平均负载不是百分比。VDS-3 上数值为 4 表示机器满负荷运转,而不是灾难。
- 只看第一个数字。 一分钟平均值稍有风吹草动就会跳动。做决策要看 15 分钟的那个。
- 忘记节点上的邻居。
vmstat中的st(steal)列显示被虚拟机监控程序占用的时间。持续偏高的数值是联系客服的理由——这不是您的问题。
平均负载说明不了内存的情况。一台机器可能显示 0.2,却仍然离 OOM killer 触发只差一步。