讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么使用systemd-analyze排查开机启动耗时项

千宇酱_4069

千宇酱_4069

发布时间:2026-10-01 09:19:01

|

491人浏览过

|

来源于php中文网

原创

systemd-analyze time 显示启动三阶段耗时,kernel/initrd/userspace 串行叠加;blame --all --no-pager 定位慢单元;critical-chain 揭示真实依赖瓶颈;plot 可视化验证并行与阻塞。

linux怎么使用systemd-analyze排查开机启动耗时项

直接看三阶段耗时分布,用 systemd-analyze time

先敲这行命令,5 秒内就能知道瓶颈大概在哪: systemd-analyze time。输出类似 Startup finished in 718ms (kernel) + 1.713s (initrd) + 17.079s (userspace) = 19.511s,这三个值是串行关系,不是并列:

  • kernel 阶段超 1s,重点查 BIOS Fast Boot 是否关闭、NVMe 驱动是否内置、Secure Boot 是否引发额外验证
  • initrd 阶段只在启用 initramfs 时存在;高耗时常见于 /etc/crypttab 配了交互式密码,或内核参数误加了 rd.md=0 导致 RAID 初始化失败重试
  • userspace 占比超 80%,说明问题在服务层,下一步必须进 blame,而不是调 BIOS 或换固件

注意:systemd-analyze time 不含 BIOS/UEFI 自检、GRUB 菜单停留、内核解压等前置时间,只反映 systemd 接管后的可测部分。

找真正拖慢启动的单元,用 systemd-analyze blame --no-pager --all

systemd-analyze blame 默认只列 active 状态的服务,但卡住开机的往往藏在 activating 或 failed 的 .mount 单元里——比如 /etc/fstab 里写了已拔掉的 USB 盘、不可达的 NFS 地址,或者 UUID 错误的磁盘。

  • 必须加 --all:强制列出所有已加载 unit(含 failed、activating)
  • 必须加 --no-pager:防止终端截断长名,例如 dev-disk-by\x2duuid-1234567890abcdef.mount 显示不全
  • 重点关注耗时 ≥ 500ms 的条目,尤其是:NetworkManager-wait-online.service(常因 DHCP 超时卡住)、docker.service(镜像扫描阻塞)、各类 .mount 单元(检查是否漏写 nofail 或 x-systemd.timeout=5)

注意:blame 统计的是 unit 从 start 到 running 的 active 时间,不包含依赖等待、I/O 延迟等前置开销,所以实际影响可能比显示值更大。

Browser Setup (No-Root Linux)
Browser Setup (No-Root Linux)

在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...

下载

确认关键路径上的真实瓶颈,用 systemd-analyze critical-chain

systemd-analyze critical-chain 展示的是从启动起点到 default.target(或 graphical.target)的最长依赖路径,每一步的时间是“该 unit 自身启动耗时”,不包含上游等待时间——这点最容易误解。

  • 如果链条末端是 NetworkManager-wait-online.service,但 blame 显示它只花了 0.2s,而链条里上一级显示 +6.7s,说明瓶颈不在它自己,而在它的依赖(比如 network-pre.target 或 sysinit.target)
  • 若想聚焦某个服务,可运行 systemd-analyze critical-chain docker.service,看它被谁卡住
  • 该命令只显示 active 状态的单元;被跳过(如 ConditionPathExists 不满足)或 disabled 的服务不会出现

别只盯着 blame 排名第一的服务改,它可能只是个“背锅侠”——critical-chain 才告诉你谁才是链路上那个真正卡住的节点。

可视化验证并行与阻塞,用 systemd-analyze plot

当 blame 和 critical-chain 结果有冲突,或者你想确认某几个服务是不是真在串行等待,就导出 SVG 图:systemd-analyze plot > boot.svg,然后用浏览器打开。

  • 图中横轴是时间,纵轴是 service 名,每条色块代表该 unit 的启动区间
  • 明显拉长的空白间隙,说明前面某个 unit 在阻塞后续并行启动(比如一个 .mount 卡住,导致整条 local-fs.target 链都停住)
  • 多个长条服务横向堆叠,说明它们确实是并行跑的,优化其中任一个对总耗时影响有限

这张图不是锦上添花的装饰,而是唯一能交叉验证“依赖链是否真被阻塞”的手段——很多看似耗时的服务,其实根本不在关键路径上,靠图一眼就能排除。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3770

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3253

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2353

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5670

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5322

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3153

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2665

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2879

2023.07.25

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 181人学习

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

共0课时 | 0人学习

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

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn