Linux查看系统启动时间,uptime命令详解
前言
排查服务器"为什么重启了"、评估系统稳定性时,需要知道系统上次启动时间和连续运行时长。uptime 是最直接的命令,一行同时给出当前时间、运行时长、在线用户数和平均负载。本篇拆解它的输出含义,并补充查看精确开机时间的其他方法。
一、uptime 基本用法
uptime
# 输出示例:
# 07:35:12 up 18:22, 2 users, load average: 0.12, 0.08, 0.05
二、输出字段逐项解读
07:35:12:系统当前时间;up 18:22:系统已连续运行 18 小时 22 分钟;如果跨天较长会显示days,例如up 3 days, 04:10;2 users:当前登录的会话数(包含 ssh、终端、图形会话,重复登录会重复计数,不等于在线人数);load average: 0.12, 0.08, 0.05:系统平均负载,分别对应最近 1 分钟、5 分钟、15 分钟 的平均活跃进程数(含运行、等待 CPU、等待 IO 的进程)。
三、平均负载怎么判断是否偏高
平均负载要看 CPU 核心数才有意义:
# 查看 CPU 核心数
nproc
# 或
cat /proc/cpuinfo | grep "processor" | wc -l
经验判断:
- 负载值 < CPU 核数:CPU 处理得过来;
- 负载 ≈ 核数:接近饱和;
- 负载 > 核数持续几分钟:进程在排队,需要结合
top、vmstat排查是 CPU 密集还是 IO 密集; - 1 分钟高、5/15 分钟低:短时高峰;三分钟趋势接近且都偏高:持续压力。
四、uptime 常用参数
# 简洁模式,只显示运行时长
uptime -s
# 显示上次开机时间(精确到时分秒)
# 输出示例:2026-10-21 13:12:49
uptime -p
# 漂亮格式:up 18 hours, 22 minutes
五、其他查看开机时间的方法
# 1. who -b 查看上次启动时间
who -b
# 2. last reboot 列出历次重启记录(查谁重启、何时重启)
last reboot | head
# 3. 读取 /proc/uptime(第一个值为秒数,第二个为空闲秒数)
cat /proc/uptime
# 4. systemd 系统用 systemd-analyze 看启动耗时
systemd-analyze
六、常见坑
up后面格式看错:18:22是小时:分钟,不是当天时间;跨天会出现days;- users 当成真实人数:它统计会话数,一条 ssh 断线未退出也会占一个会话;用
w或who看具体登录人; - 负载和 CPU 占用混淆:高负载可能是磁盘 IO 等待导致,CPU 使用率反而不高,要结合
top中%wa判断; - 不结合核数看负载:4 核机器负载 2.0 很轻松,1 核机器负载 2.0 已经排队;
uptime -s拿到的是开机时间,不是进程启动时间:查某个服务何时启动用ps -o lstart -p PID。
七、排查组合命令
# 一次看:运行时长、负载、CPU 核数、当前登录人
uptime
nproc
w
服务异常时先看 uptime:若运行时长很短,说明机器刚重启,先确认是计划重启、断电还是崩溃重启,再结合 last reboot 和 /var/log/messages 定位原因。
总结
uptime 一行给出当前时间、已运行时长、登录会话数和 1/5/15 分钟负载;判断负载要除以 CPU 核数;精确开机时间用 uptime -s、who -b、last reboot;重启类故障先确认运行时长和重启记录,再往下查系统日志。
遇到问题加QQ23979811 协助处理
Linux查看系统负载,uptime和w命令详解
前言
服务器卡不卡,先看负载。Linux看系统负载最常用的就是uptime和w命令,一行输出就能看到系统跑了多久、现在有多少人登录、负载高不高。本文讲怎么看这些信息。
一、uptime命令
直接敲
uptime
输出:
07:39:01 up 35 days, 2:15, 2 users, load average: 0.08, 0.03, 0.00
逐个解释
| 字段 | 含义 |
|---|---|
| 07:39:01 | 当前时间 |
| up 35 days, 2:15 | 系统运行了35天2小时15分 |
| 2 users | 当前有2个用户登录 |
| load average: 0.08, 0.03, 0.00 | 系统负载,分别是1分钟、5分钟、15分钟 |
负载怎么看
load average三个数:
- 第一个:最近1分钟的平均负载
- 第二个:最近5分钟的平均负载
- 第三个:最近15分钟的平均负载
判断标准:
| 负载值 | 状态 |
|---|---|
| 0.00-0.70 | 正常 |
| 0.70-1.00 | 注意一下 |
| 1.00-2.00 | 有点高 |
| 2.00以上 | 很高了,要排查 |
注意: 负载和CPU核数有关。比如4核CPU,负载4.00才是满。
看CPU核数
nproc
# 4
或者:
cat /proc/cpuinfo | grep processor | wc -l
# 4
判断: 负载小于CPU核数就是正常的。
二、w命令
直接敲
w
输出:
07:39:01 up 35 days, 2:15, 2 users, load average: 0.08, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 1.2.3.4 07:35 5.00s 0.03s 0.00s w
www pts/1 5.6.7.8 07:30 8:12 0.01s 0.01s -bash
逐个解释
第一行和uptime一样。
下面是登录用户列表:
| 字段 | 含义 |
|---|---|
| USER | 用户名 |
| TTY | 终端类型(pts/0表示远程连接) |
| FROM | 从哪个IP登录的 |
| LOGIN@ | 登录时间 |
| IDLE | 空闲时间 |
| JCPU | 整个终端所有进程用的CPU时间 |
| PCPU | 当前进程用的CPU时间 |
| WHAT | 当前在跑什么命令 |
三、其他查看命令
who命令
看谁登录了:
who
输出:
root pts/0 2026-10-09 07:35 (1.2.3.4)
www pts/1 2026-10-09 07:30 (5.6.7.8)
last命令
看登录历史:
last
输出最近登录的记录。
lastb命令
看失败的登录:
lastb
四、负载高了怎么排查
第一步:看CPU
top
按P按CPU排序,看哪个进程占CPU多。
第二步:看内存
free -h
看内存够不够,有没有用swap。
第三步:看磁盘
df -h
看磁盘满了没。
第四步:看IO
iostat
看磁盘IO高不高。
五、常见坑
坑1:负载高不代表CPU高
负载包括:
- 正在用CPU的进程
- 等着CPU的进程
- 等着磁盘IO的进程
可能是磁盘IO高,CPU不高,但负载也高。
坑2:负载和核数对比
1核CPU,负载1.0就是满了。
4核CPU,负载4.0才是满了。
别光看数字,要看CPU核数。
坑3:三个负载数的区别
- 1分钟高,5分钟、15分钟不高:可能是突然有个进程跑了一下
- 15分钟都高:说明系统一直很忙
总结
记住:
uptime看系统运行时间和负载w看谁登录了、在干嘛- 负载三个数:1分钟、5分钟、15分钟
- 负载要和CPU核数对比
- 负载高了用top、free、df、iostat排查
最常用:
uptime # 看负载
w # 看谁在登录
top # 看哪个进程占CPU
遇到问题加QQ23979811 协助处理
Linux查看系统启动时间,uptime命令详解
前言
想知道服务器从上次开机到现在跑了多久?或者想看系统负载?uptime 命令一行就能搞定。本文详细讲一下这个命令的用法。
uptime 命令
基本用法
直接输入:
uptime
输出类似:
07:49:21 up 2:15, 1 user, load average: 0.00, 0.01, 0.05
输出解释
| 字段 | 含义 |
|---|---|
07:49:21 |
当前系统时间 |
up 2:15 |
系统已经运行了 2 小时 15 分钟 |
1 user |
当前有 1 个用户登录 |
load average: 0.00, 0.01, 0.05 |
1分钟、5分钟、15分钟的平均负载 |
常用参数
显示漂亮一点
uptime -p
输出类似:
up 2 hours, 15 minutes
显示系统启动时间
uptime -s
输出类似:
2026-10-06 05:34:21
这就是系统上次启动的具体时间。
查看系统启动时间的其他方法
who 命令
who -b
输出类似:
system boot 2026-10-06 05:34
last 命令
last reboot | head -5
列出最近几次重启记录:
reboot system boot 3.10.0-1160.el7. Fri Oct 6 05:34 - 07:49 (02:15)
reboot system boot 3.10.0-1160.el7. Thu Oct 5 09:12 - 22:00 (12:47)
systemd-analyze
systemd-analyze
显示系统启动花了多长时间:
Startup finished in 1.234s (kernel) + 2.345s (initrd) + 10.123s (userspace) = 13.702s
负载(load average)怎么看
uptime 最后三个数字是负载,很多人不知道怎么判断高不高。
三个数字的含义
- 第一个:1 分钟平均负载
- 第二个:5 分钟平均负载
- 第三个:15 分钟平均负载
怎么判断高不高
负载和 CPU 核心数有关:
- 负载 < CPU核心数:正常
- 负载 ≈ CPU核心数:刚好饱和
- 负载 > CPU核心数:过载了
查看 CPU 核心数
nproc
输出就是核心数。
比如你的服务器是 4 核 CPU:
- 负载 1.0:很闲
- 负载 4.0:刚好跑满
- 负载 8.0:过载了
常见坑
坑1:负载高但 CPU 不高
负载很高,但 top 看 CPU 使用率不高。
原因: 可能是 I/O 等待高(磁盘读写慢),或者有大量进程在排队。
解决: 用 top 看 %wa 列(I/O 等待),如果高就是磁盘问题。
坑2:up 时间不对
uptime 显示的运行时间和你印象中的不一样。
原因: 系统可能自动重启过,或者你记错了。
解决: 用 last reboot 看历史重启记录。
坑3:1 user 不对
uptime 显示只有 1 个用户,但你明明看到好几个人登录。
原因: 显示的是登录会话数,不是用户数。同一个用户开多个 SSH 连接会算多个会话。
解决: 用 w 命令看详细的在线用户。
总结
| 命令 | 作用 |
|---|---|
uptime |
看运行时间和负载 |
uptime -p |
漂亮格式显示运行时间 |
uptime -s |
显示系统启动时间 |
who -b |
看系统启动时间 |
last reboot |
看历史重启记录 |
nproc |
看 CPU 核心数 |
日常运维用 uptime 一行就能看个大概,很方便。
遇到问题加QQ23979811 协助处理
Linux查看系统运行时间,uptime和w命令使用
前言
想知道服务器已经连续运行了多少天?现在有多少人在线?系统负载怎么样?这些问题用 uptime 和 w 两个命令就能搞定。这两个命令虽然简单,但都是运维日常最常用的,一个看运行时间和负载,一个看谁在线。本文就把这两个命令讲透。
uptime 命令
基本用法
直接输入:
uptime
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
输出详解
| 字段 | 含义 |
|---|---|
10:30:45 |
当前系统时间 |
up 30 days, 2:15 |
系统已运行30天2小时15分钟 |
1 user |
当前有1个用户登录 |
load average: 0.50, 0.40, 0.30 |
系统负载,分别是1分钟、5分钟、15分钟的平均值 |
负载怎么看
负载(load average)是衡量系统繁忙程度的指标。数值越高说明越忙。
判断标准:
- 负载数值和CPU核心数有关
- 比如4核CPU,负载4.0才算跑满
- 一般来说,负载不要超过CPU核心数的70%
- 比如4核CPU,负载在2.8以下算正常
uptime 常用参数
uptime -V
查看版本号。
uptime -h
查看帮助。
w 命令
基本用法
直接输入:
w
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:20 5.00s 0.05s 0.00s w
输出详解
第一行和 uptime 完全一样:系统时间、运行时间、在线用户数、负载。
下面是当前登录的用户列表:
| 列 | 含义 |
|---|---|
USER |
登录用户名 |
TTY |
终端类型(pts/0 表示远程SSH连接) |
FROM |
登录来源IP |
LOGIN@ |
登录时间 |
IDLE |
空闲时间 |
JCPU |
该终端所有进程占用的CPU时间 |
PCPU |
当前进程占用的CPU时间 |
WHAT |
当前正在运行的命令 |
w 常用参数
w -h
不显示第一行标题,只显示用户列表。
w -s
精简模式,不显示 JCPU 和 PCPU 列。
w root
只查看某个用户的登录信息。
who 命令
除了 uptime 和 w,还有个 who 命令,更简单:
who
输出:
root pts/0 2026-10-05 10:20 (192.168.1.100)
只显示谁在线、从哪来、什么时候登录的。
last 命令
想知道历史登录记录,用 last:
last
输出最近的登录记录,包括:
- 谁登录的
- 从哪个IP登录的
- 什么时候登录的
- 登录了多久
last -10
只看最近10条。
实际应用场景
场景1:服务器重启过没有
用 uptime 看运行时间,如果才几天,说明最近重启过。
uptime
场景2:谁在登录我的服务器
用 w 看当前有谁在线,来源IP是哪里。如果有不认识的IP,可能是被入侵了。
w
场景3:系统负载高不高
用 uptime 看 load average,如果负载很高,再用 top 看是哪个进程占的。
uptime
top
场景4:排查登录历史
用 last 看历史登录记录,有没有异常登录。
last
常见坑
坑1:负载高就以为CPU不够
负载高不一定是CPU的问题。负载包括所有等待CPU的进程,也包括等待I/O的进程。可能是磁盘I/O瓶颈,也可能是大量进程在排队。要结合 top 一起看。
坑2:把在线用户数看得很重要
1 user 这个数字只是当前登录的用户数,不代表系统性能。一个用户也可能把系统跑满,100个用户也可能很空闲。
坑3:last 显示的是历史记录,不是实时状态
last 是看历史登录记录的,现在谁在线要用 w 或 who。两者别搞混了。
总结
uptime 和 w 是最基础的系统监控命令:
- uptime:看系统运行时间和负载
- w:看谁在线、从哪来、在干嘛
- who:更简单的在线用户查看
- last:看历史登录记录
这几个命令都是秒出结果,排查问题的时候先跑一遍,快速了解系统基本状态。
遇到问题加QQ23979811 协助处理