uptime命令显示的load average三值(1分钟、5分钟、15分钟平均负载)反映可运行或不可中断状态进程数,需结合CPU核心数判断:单核>1、4核>4即过载,长期>0.7×核数应关注;其数据源自/proc/loadavg,含实时线程数与PID信息;趋势分析比单值更有诊断价值。

uptime 是最直接查看 Linux 系统负载的命令,它不只告诉你系统运行了多久,更关键的是右侧显示的 load average 三个数值——它们是判断服务器是否“真正吃紧”的第一道标尺。
uptime 输出怎么看
执行 uptime 后典型输出如下:
13:28:45 up 42 days, 5:17, 2 users, load average: 1.82, 1.45, 1.20
其中:
- 1.82:过去 1 分钟的平均负载
- 1.45:过去 5 分钟的平均负载
- 1.20:过去 15 分钟的平均负载
这三个值不是百分比,也不是 CPU 使用率,而是单位时间内处于 可运行(R) 或 不可中断睡眠(D) 状态的进程(准确说是线程)平均数量。
load average 值到底意味着什么
负载值必须结合 CPU 核心数理解:
- 单核 CPU:load > 1 表示有进程在排队等 CPU 或 I/O
- 4 核 CPU:load > 4 才说明整体资源紧张;load = 2 表示平均每个核心承担 0.5 个任务,仍有余量
- 实际建议阈值:长期 load > 0.7 × CPU 总核数,就该关注;> 0.9 × 核数,需排查风险
注意:即使 CPU 使用率(%id)很高、wa 很低,load 也可能偏高——因为 D 状态进程(如等待磁盘响应)会计入 load,却不消耗 CPU 时间。
/proc/loadavg 是源头
所有工具(uptime、top、w)读取的 load 数据都来自 /proc/loadavg 文件。用 cat /proc/loadavg 可看到 6 列:
1.82 1.45 1.20 2/620 3487
- 前三列即 uptime 显示的三个 load 值
- 第四列
2/620:斜杠前是当前 运行中 + 不可中断 的线程数(实时 r + b),斜杠后是当前总线程数 - 第六列是当前 namespace 中最后一个分配的 PID
这个文件是内核实时更新的,毫秒级反映系统调度队列压力。
什么时候该怀疑 load 异常
观察三个时间维度的组合趋势比单看一个值更有价值:
- 1 分钟值远高于 5/15 分钟值:突发短时压力,可能刚过去,比如某 cron 任务启动
- 15 分钟值持续高于 CPU 核数:系统已长时间过载,需立即排查
- 1 分钟值低但 15 分钟值高:问题已缓解,但历史痕迹仍在,适合回溯日志
- load 高 + CPU idle 高 + wa 高:典型 I/O 瓶颈,重点查磁盘或 NFS










