Linux Total Boot time哪里打印的

在 Linux 系统中,总启动时间(Total Boot Time)的打印位置和查看方法取决于系统使用的初始化工具(如 systemdsysvinit)。以下是常见的查看方法:


1. 使用 systemd-analyze(适用于 systemd 系统)

大多数现代 Linux 发行版(如 Ubuntu、Fedora、Debian 等)使用 systemd,可以通过以下命令查看启动时间:

(1) 总启动时间

1
systemd-analyze

输出示例:

1
2
Startup finished in 3.956s (kernel) + 5.234s (userspace) = 9.190s 
graphical.target reached after 5.214s in userspace
  • kernel: 内核初始化时间(硬件检测、驱动加载等)。
  • userspace: 用户空间服务启动时间(如系统服务、守护进程)。

(2) 各服务启动耗时

1
systemd-analyze blame

按耗时排序显示每个服务的启动时间,帮助定位瓶颈。


(3) 生成启动流程图

1
systemd-analyze plot > boot.svg

生成 SVG 格式的详细启动时序图,可用浏览器打开分析。


2. 查看内核启动日志(dmesg

内核启动时间通常记录在 dmesg 的输出中。搜索关键词 BOOT_IMAGEboot

1
dmesg | grep "BOOT_IMAGE"

输出可能包含类似信息:

1
2
[    0.000000] Linux version 5.4.0-xx-generic (buildd@lcy01-amd64-001) (gcc version 9.3.0) #44-Ubuntu SMP ...
[ 1.234567] systemd[1]: System time before build time, advancing clock.

通过时间戳(如 [1.234567])可以推算内核阶段的耗时。


3. 查看 /var/log/boot.log 文件

某些系统(如 RHEL/CentOS)会记录启动日志到 /var/log/boot.log

1
cat /var/log/boot.log

该文件可能包含服务启动的详细时间和状态。


4. 使用 uptime 命令间接计算

1
uptime -s

输出系统启动的精确时间(如 2023-10-01 08:30:00),结合当前时间可手动计算总运行时长。


5. 传统 sysvinit 系统(如旧版 Ubuntu/Debian)

对于使用 sysvinit 的系统,查看 /var/log/dmesg/var/log/syslog

1
grep "\[ *0\." /var/log/dmesg

查找内核初始化的时间戳。


总结表格

方法 命令/文件 适用场景
systemd-analyze systemd-analyze 现代 systemd 系统
内核日志 dmesg | grep "BOOT_IMAGE" 查看内核阶段耗时
启动日志文件 /var/log/boot.log RHEL/CentOS 等系统
uptime uptime -s 手动计算启动时间

根据系统类型选择合适的方法,推荐优先使用 systemd-analyze 进行快速分析。