运行 systemd-analyze plot > boot-time.svg 可生成SVG启动时序图,直观展示各unit耗时、阻塞与并行情况,结合 blame 和 critical-chain 可定位瓶颈根因。

直接运行 systemd-analyze plot 就能生成 SVG 格式的启动时序图,它把整个启动过程变成一张可缩放、可点击的时间线图,比纯文字列表更直观地暴露耗时长、卡顿久、等待空闲的服务。
生成图表只需一条命令
在终端中执行:
systemd-analyze plot > boot-time.svg
命令执行完成后,当前目录下会出现一个 boot-time.svg 文件。用任意现代浏览器(Chrome、Firefox、Edge)双击打开即可查看。
看懂图中的关键信息
图中每一条横向色块代表一个 systemd unit(如 sshd.service、docker.service),时间轴从左到右表示启动经过的毫秒数:
- 长条+前方大片空白:说明该服务启动前有明显等待(比如等网络、等磁盘挂载),是典型阻塞点
-
单个色块横向延伸过长(如持续 3 秒以上):服务自身初始化慢,对应
blame中高耗时项 - 多条色块紧密并排、无重叠间隙:说明这些服务被串行启动,可能存在冗余依赖或未启用并行
- 颜色区分状态:绿色通常为已激活(active),黄色为正在启动(activating),灰色为未运行
配合 blame 和 critical-chain 定位问题
SVG 图本身不标注耗时数值,需结合其他命令交叉验证:
- 先用
systemd-analyze blame --no-pager找出耗时前 5 的服务名 - 再到 SVG 图中搜索这些服务名,观察它们是否出现在空白等待区之后、是否拉得特别长
- 再运行
systemd-analyze critical-chain,看这些服务是否落在最长依赖链上——如果既是 blame 前三、又在 critical-chain 末端,基本就是瓶颈根因
常见可优化的图示特征
以下图形模式往往对应具体问题:
- NetworkManager-wait-online.service 占据数秒且前面有大段空白 → 网络超时等待,可禁用或缩短超时
-
xxx.mount 条块延迟出现、持续数秒 → /etc/fstab 中远程挂载(NFS/CIFS)未配
nofail或_netdev - plymouth-quit-wait.service 横跨整个后期 → 开机动画退出逻辑被某服务阻塞,常与图形目标有关
- 大量服务集中在最后 1–2 秒才启动 → default.target 依赖设置过严,部分服务本可更早并行启动


















