systemd-analyze可分析Linux启动耗时,直接运行查看总时间,重点关注userspace阶段;用blame命令查看各服务耗时,如NetworkManager-wait-online.service过长可禁用;使用critical-chain查看关键依赖链,优化核心路径服务以缩短开机时间。

系统启动时间过长?想知道Linux开机过程中哪里耗时最多?systemd-analyze 是 systemd 提供的内置工具,能帮你快速分析系统启动耗时。它不需要额外安装,开箱即用,适合排查开机慢的问题。
直接运行以下命令,查看从BIOS之后到用户登录界面出现的总时间:
systemd-analyze输出类似:
Startup finished in 4.235s (firmware) + 3.120s (loader) + 8.765s (kernel) + 12.450s (userspace) = 28.570s
这里显示了各个阶段耗时:
重点关注 userspace 阶段,因为大多数可优化的服务都在这里。
使用 blame 子命令查看每个服务的启动耗时,按耗时从高到低排序:
systemd-analyze blame输出示例:
9.234s NetworkManager-wait-online.service 2.100s docker.service 1.450s apparmor.service 1.200s snapd.service
可以看到哪个服务拖慢了开机速度。比如 NetworkManager-wait-online.service 等待网络就绪太久,通常是因为它在等待所有网络接口完全连接。
如果你不需要开机强制联网,可以禁用该服务:
sudo systemctl disable NetworkManager-wait-online.service使用 critical-chain 查看关键路径上的服务链,也就是决定总启动时间的核心依赖链:
systemd-analyze critical-chain输出示例:
graphical.target @12.450s
└─multi-user.target @12.440s
└─docker.service @10.340s +2.100s
└─network-online.target @10.340s
└─NetworkManager-wait-online.service @1.100s +9.234s
└─NetworkManager.service @980ms +120ms
└─dbus.service @950ms
└─basic.target @940ms
└─...
这条链说明:图形界面启动依赖 Docker,而 Docker 又依赖网络在线,最终源头是 NetworkManager-wait-online 耗时近10秒。优化这个链条中的任意环节都能缩短总启动时间。
想更直观地查看服务启动顺序和时间分布?可以用下面命令生成 SVG 图片:
systemd-analyze plot > boot-time.svg然后将 boot-time.svg 下载到本地浏览器打开,就能看到每个服务的启动时间轴,便于分析并发情况和瓶颈。
基本上就这些。systemd-analyze 不复杂但容易忽略,掌握这几个命令后,排查开机慢问题会高效很多。
以上就是Linux如何查看系统启动耗时分析_Linuxsystemd-analyze使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号