人人都会AI编程

uptime、w:系统运行时间与负载

更新时间:2026-07-12

当你登录到一台 Linux 服务器,通常最先想知道的就是“这台机器跑了多久、现在忙不忙”。uptimew 就是为此设计的简洁命令,它们能在一行输出中提供系统运行时长、当前在线用户数以及系统负载(load average)

uptime

直接执行 uptime 即可,无需任何参数:

uptime

典型输出:

 14:23:45 up 127 days,  3:42,  2 users,  load average: 0.15, 0.10, 0.05

从左到右依次是:

  • 当前系统时间
  • 系统已运行时间(“127 days, 3:42”表示已经连续运行127天3小时42分)
  • 当前在线用户数
  • 过去 1分钟、5分钟、15分钟 的平均负载

w

w 命令在 uptime 的基础上,增加了每个在线用户在做什么的信息:

w

输出示例:

 14:24:01 up 127 days,  3:43,  2 users,  load average: 0.15, 0.10, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    14:10    5:20   0.05s  0.05s -bash
john     pts/1    10.0.0.5         14:20    2.00s  0.02s  0.00s w
  • 第一行与 uptime 完全一致
  • 从第二行开始,列出每个登录用户的用户名、登录终端、来源IP、登录时间、空闲时间、CPU使用时间以及当前正在执行的命令

实际中怎样使用

  • 快速判断机器是否最近重启过:如果 up 时间只有几小时或几天,而预期应该更长,就值得关注。
  • 初步感知系统忙闲load average 三个数字可以帮你快速判断趋势:
  • 如果 1 分钟的数值远高于 15 分钟,说明系统负载正在快速上升
  • 如果三个数值都接近或持续超过 CPU 核心数,很可能意味着存在排队等待 CPU 的任务,需要进一步排查
  • 排查谁在用机器w 能看到所有活动用户及其操作,如果发现异常登录源或可疑命令,可能就是安全事件的线索

重要概念:什么是“系统负载”

很多人误以为 load average 就是 CPU 使用率,其实并不准确。系统负载统计的是处于可运行状态(等待CPU)不可中断睡眠状态(通常是等待磁盘I/O完成)的进程数量。因此:

  • 一个完全受限于磁盘 I/O 的进程也会推高负载
  • 单核 CPU 刚好满负荷运行,负载约为 1.0;双核满负荷则约为 2.0,依此类推
  • 偶尔的瞬时高负载(如编译、备份)是正常的,只有持续过高的负载才需要深入调查

因此,当 uptime 显示高负载但用 top 看到 CPU 空闲时,不要困惑——很可能瓶颈在磁盘或网络 I/O 上。uptime 给出的负载数字,是系统整体健康度的一个快速指标,而不是终点诊断。