当前位置:首页>Linux>Linux 中 uptime 命令详解:查看系统运行时间与负载实际案例

Linux 中 uptime 命令详解:查看系统运行时间与负载实际案例

  • 2026-10-11 07:12:12
Linux 中 uptime 命令详解:查看系统运行时间与负载实际案例

当我们登录到一台服务器时,最想了解的信息之一往往是:这台机器已经运行了多久?当前负载高不高?uptime 命令恰好能同时回答这两个问题。

顾名思义,uptime 命令用于显示系统已经运行了多长时间。同时,它还会显示:

  • 当前系统时间
  • 已登录的用户数量
  • 系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载

下面将详细介绍如何使用 uptime 命令,以及如何解读其输出结果(包括系统负载的含义)。

# 快速参考

任务命令
显示运行时间、用户数和负载
uptime
以人类可读的格式显示运行时间
uptime -p
显示上次系统启动的日期和时间
uptime -s
以秒为单位读取原始运行时间
cat /proc/uptime

1. uptime 命令语法

uptime [选项]

要显示系统的运行时间,直接运行不带任何选项的命令:

[root@ymvps ~]# uptime
 13:56:44 up 136 days, 22:48,  1 user,  load average: 21.88, 21.82, 21.83

# 输出解读(从左到右)

字段示例值含义
当前系统时间
13:56:44
系统当前的时钟时间
运行时间
up 136 days, 22:48
系统已持续运行了 136 天 22 小时 48 分钟
已登录用户数
1 user
当前登录到系统的用户数量
系统平均负载
load average: 21.88, 21.82, 21.83
过去 1 分钟、5 分钟、15 分钟的平均负载

补充说明:uptime 显示的信息与 w 命令的头部信息完全相同,也出现在 top 命令的顶部区域。

2.理解系统负载平均值(Load Average)

Linux 中的负载平均值(Load Average)可能会让人感到有些困惑,与其他操作系统仅报告 CPU 负载不同,Linux 报告的是系统负载。

2.1什么是系统负载平均值?

系统负载平均值是对正在运行或正在等待资源(如 CPU 时间或磁盘 I/O)的进程数量的一种度量。简而言之,它告诉我们系统在给定时间段内有多繁忙。

以上面物理机实际的输出为例:

load average: 21.88, 21.82, 21.83
时间间隔负载值含义
1 分钟
21.88
过去 1 分钟内平均有约 22 个进程在运行或等待
5 分钟
21.82
过去 5 分钟内平均有约 22 个进程在运行或等待
15 分钟
21.83
过去 15 分钟内平均有约 22 个进程在运行或等待
2.2 如何判断负载趋势?
负载变化情况含义本例分析
1 分钟平均值 > 5 分钟/15 分钟平均值
负载正在上升
21.88 > 21.82,略有上升趋势
1 分钟平均值 ≈ 5 分钟/15 分钟平均值
负载相对稳定
三者均在 21.8 左右,负载平稳
1 分钟平均值 < 5 分钟/15 分钟平均值
负载正在下降
—
2.3 如何判断 CPU 是否成为瓶颈?

对于 CPU 密集型的工作负载,需要将负载平均值与逻辑 CPU 核心数进行比较。

本机配置CPU核心数如下:

[root@ymvps ~]# nproc
64
或者:
[root@ymvps ~]# lscpu | grep -E '^CPU\(s\)|^Thread'
CPU(s):                                  64
Thread(s) per core:                      2
[root@ymvps ~]# 

该服务器拥有 64 个逻辑 CPU 核心。

负载值核心数比值含义
21.88
64
21.88 / 64 ≈ 0.34
负载仅为核心数的 34%,CPU 资源相对充裕

结论:虽然负载值 21.88 看起来不小,但考虑到服务器拥有 64 个逻辑核心,实际 CPU 利用率并不高,系统整体运行较为轻松。

2.4判断标准参考
比较结果含义
负载 < 核心数
CPU 资源相对充裕
负载 ≈ 核心数
CPU 基本处于满载状态
负载 > 核心数
存在任务在排队等待 CPU 资源

重要提醒:这只是一个粗略的参考指标。因为 Linux 的负载统计还包括处于不可中断睡眠(uninterruptible sleep)状态的任务,这些任务通常是在等待磁盘 I/O。因此,负载升高可能是因为 CPU 使用率高,也可能是因为磁盘活动频繁。

3.uptime 命令常用选项

uptime 命令支持的选项并不多,以下是常用选项:

3.1 人类可读格式:-p(--pretty)

显示格式更加友好的运行时间:

[root@ymvps ~]# uptime -p
up 136 days, 22 hours, 48 minutes

仅显示系统已运行多长时间,不包含负载等其他信息。

3.2 显示启动时间:-s(--since)

显示系统的启动日期和时间:

[root@ymvps ~]# uptime -s
2026-01-27 15:08:44

说明:136 天前为 2026 年 1 月 27 日左右(具体时间根据实际环境计算)。

3.3 不通过 uptime 命令读取运行时间

uptime 命令本身是从内核中读取数据的,我们可以直接从 /proc/uptime 文件中获取原始值:

[root@ymvps ~]# cat /proc/uptime
11831687.54 11502314.37
字段数值换算
第一个数字
11831687.54秒
约 136 天 22 小时 48 分钟
第二个数字
11502314.37秒
所有 CPU 核心的空闲时间总和

计算验证:11831687.54 ÷ 86400(每天的秒数)≈ 136.94 天,与 uptime 显示的 136 天 22 小时 48 分钟吻合。

4. 常见问题

4.1 如何查看 Linux 服务器已经运行了多长时间?
[root@ymvps ~]# uptime
 13:56:44 up 136 days, 22:48,  1 user,  load average: 21.88, 21.82, 21.83

或使用更友好的格式:

[root@ymvps ~]# uptime -p
up 136 days, 22 hours, 48 minutes
4.2uptime 中的负载平均值(load average)是什么意思?

它表示在过去 1 分钟、5 分钟和 15 分钟内,处于运行状态或等待资源的任务的平均数量。

以本例为参考:

  • 负载值约 21.88
  • 服务器有 64 个逻辑核心
  • 负载仅为核心数的 34%,说明 CPU 资源充足

请记住:等待磁盘 I/O 的任务同样会计入 Linux 负载中。

4.3:如何查看系统的上一次启动时间?
[root@ymvps ~]# uptime -s
2026-01-27 15:08:44

此外,who -b 命令也能显示相同的信息:

[root@ymvps ~]# who -b
         system boot  2026-01-27 15:08
4.4 负载值 21.88 算是高负载吗?

答案取决于核心数:

核心数负载 21.88 的含义
1 核
严重过载,系统几乎无法响应
4 核
高负载,需要排查
8 核
较高负载,需要关注
16 核
中等负载
64 核(本例)低负载,运行轻松
128 核
几乎空闲

5. 总结

uptime 命令是快速查看系统运行时间和繁忙程度的便捷工具。通过一条简单的命令,我们可以同时获得:

  • 系统运行了多久(本例:136 天 22 小时 48 分钟)
  • 当前有多少用户登录(本例:1 个用户)
  • 系统在过去 1、5、15 分钟的负载趋势(本例:21.88, 21.82, 21.83)

实际案例解读:

  • 运行时间:136 天,说明服务器长期稳定运行,未重启
  • 负载均值:约 21.8
  • 逻辑核心数:64
  • 结论:负载仅为核心数的 34%,CPU 资源充裕,系统运行正常

当我们发现负载平均值偏高、需要进一步排查具体是哪些进程导致的高负载时,可以接着使用 top、htop 或 ps 等命令进行深入分析。

关于uptime命令,表格如下:

uptime                    # 查看运行时间+负载
uptime -p                 # 人类可读的运行时间
uptime -s                 # 查看上次启动时间
cat /proc/uptime          # 以秒为单位的原始运行时间
who -b                    # 另一种查看启动时间的方式

最新文章

随机文章