Linux系统如何查看系统启动耗时 systemd-analyze用法【详解】

梦静酱_1249

梦静酱_1249

2026-04-12

603人浏览

原创

systemd-analyze time 仅统计 systemd 接管后的三阶段耗时,不含 bios/uefi、grub、内核解压等前置时间;kernel 阶段超 1s 查固件设置与驱动,initrd 高耗时查加密/lvm 配置,userspace 占比超 80% 则需用 blame --all 定位慢服务及挂载单元。

linux系统如何查看系统启动耗时 systemd-analyze用法【详解】

systemd-analyze time 显示三阶段耗时不准?

直接运行 systemd-analyze time 得到的数值,是 systemd 从自身接管控制权开始计时的,并不包含 BIOS/UEFI 自检、GRUB 菜单停留、内核解压等前置时间。所以它反映的是“可测量的启动链”起点,不是整机通电到登录界面的全程。

输出中三个字段含义必须分清:kernel 是从内核第一条指令执行到 init 进程被创建的时间;initrd 只在启用 initramfs 时出现,含加密卷解锁、LVM 扫描等动作;userspace 才是 systemd 加载所有 unit 的总耗时——这个值最值得盯紧。

  • 如果 kernel 阶段 > 1s,优先检查 BIOS/UEFI 设置(如 Fast Boot 是否开启)、NVMe 驱动是否内置、Secure Boot 是否引发额外验证
  • initrd 耗时高,重点查 /etc/crypttab 中密码提示方式、rd.md=0 rd.lvm=0 等内核参数是否误禁用了必要模块
  • userspace 占比超 80%,说明问题在服务层,下一步必须用 blame

systemd-analyze blame 排查慢服务时漏掉 mount 单元?

systemd-analyze blame 默认只显示已成功激活(active)的 unit,但挂载失败或卡在 activating (start) 状态的 .mount 单元不会出现在列表里——它们会拖慢整个关键路径,却隐身了。

真正要抓全,得加两个参数:systemd-analyze blame --no-pager --all。其中 --all 强制列出所有已加载 unit(包括 failed 和 activating 状态),--no-pager 避免因终端宽度截断长服务名(比如带 UUID 的 dev-disk-by\x2duuid-xxx.mount)。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 重点关注耗时 > 500ms 的 .mount 单元:它们往往对应 /etc/fstab 中配置了但设备不可达的条目(如拔掉的 USB 盘、未挂载的 NFS 服务器)
  • 看到 NetworkManager-wait-online.service 耗时高,别急着禁用——先用 journalctl -u NetworkManager-wait-online.service -b 看日志,大概率是 DHCP 超时或 IPv6 RA 等待卡住
  • 第三方服务(如 docker.service、prometheus-node-exporter.service)若耗时突增,用 systemctl show -p ExecMainPID <code>service-name 查 PID,再结合 strace -p <code>PID 看卡在哪个系统调用上

critical-chain 显示的“瓶颈”其实可以绕过?

systemd-analyze critical-chain 输出的是依赖树中最长的一条串行链,但它不等于“必须优化的点”。有些 unit 处于关键路径上,只是因为设计如此(比如 multi-user.target 依赖 network.target,而后者又依赖 NetworkManager.service),并非性能缺陷。

判断是否真瓶颈,要看两点:一是该 unit 自身耗时是否异常(对比 blame 结果);二是它是否真的被下游服务强依赖。例如 getty@tty1.service 出现在关键链末端,但除非你必须秒级登录,否则它不影响业务就绪时间。

  • 若发现某个服务(如 cloud-init.service)长期霸占关键链头部,且耗时稳定在 3~4s,大概率是云平台元数据服务响应慢,可考虑在 /etc/cloud/cloud.cfg.d/99-disable.cfg 中设 disable_root: true 并关掉非必要模块
  • 想临时跳过某环节?不要直接 systemctl disable,而是改 unit 文件,在 [Unit] 段加 Wants= 替代 After=,或用 systemctl mask 彻底切断依赖(慎用)
  • critical-chain 不显示并行启动的服务,所以总耗时永远 ≤ 最长链耗时 —— 这也是为什么优化单个服务未必缩短整体启动时间

plot 生成的 SVG 图打不开或报错?

systemd-analyze plot > boot-time.svg 生成的图本质是 XML 格式 SVG,浏览器能打开,但部分旧版 Chrome 或 Firefox 会因安全策略拒绝加载本地文件中的脚本(SVG 内嵌 JS)。这不是生成失败,是渲染限制。

更可靠的方式是用 systemd-analyze dot | dot -Tpng -o boot-time.png 转成 PNG——前提是系统装了 graphviz。CentOS/RHEL 需 yum install graphviz,Ubuntu/Debian 用 apt install graphviz。

  • 图中横向色块越长,代表该 unit 启动越慢;色块重叠越多,说明并行度越高;空隙越大,说明等待依赖越久
  • 如果发现大量服务在某个时间点后才开始启动(比如 8s 后突然密集出现),说明前面有个隐形的同步点(如 local-fs.target 或自定义 target)卡住了
  • 注意:图中显示的耗时是相对时间(从 systemd 启动开始),和 time 命令的绝对值一致,但和 blame 的倒序排列逻辑不同——plot 更适合看并发关系,而非排序找“最慢”
实际排查时,time 定范围、blame 锁目标、critical-chain 看依赖、plot 验并发,四者缺一不可。最容易被忽略的是:很多“慢启动”根本不是 systemd 层面的问题,而是硬件响应(如 SATA Link Down 重试)、固件 Bug(某些 Intel RST RAID 卡在 initrd 阶段死等)、甚至 BIOS 电池没电导致 CMOS 时间回滚触发证书校验延迟——这些在任何 systemd-analyze 输出里都不会体现。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2706

5

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.06

5259

7

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

2026.03.24

3767

22

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.01

4524

5

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2024.08.01

5857

7

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2024.11.28

2442

7

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4316

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1335

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1738

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习