Linux怎么查看系统启动耗时_Linux systemd-analyze分析启动【技巧】

酷明大大_4281

酷明大大_4281

2026-03-29

666人浏览

原创

需用 systemd-analyze time 查整体耗时,blame 找耗时单元,critical-chain 分析关键路径,plot 生成时序图,journalctl -b 结合日志定位具体错误。

linux怎么查看系统启动耗时_linux systemd-analyze分析启动【技巧】

如果您希望了解 Linux 系统从加电到用户空间就绪所耗费的总时间,并定位拖慢启动的具体环节,则需借助 systemd 自带的分析工具。以下是查看与分析系统启动耗时的操作步骤:

一、获取整体启动耗时与阶段分布

systemd-analyze time 命令可将启动过程划分为 kernel、initrd 和 userspace 三个关键阶段,分别反映硬件初始化、临时根文件系统加载及服务启动的耗时情况。该命令输出结果直观呈现各阶段用时及其累加总和,是建立性能基线的第一步。

1、打开终端,执行以下命令:
systemd-analyze time

2、观察输出格式示例:
Startup finished in 2.123s (kernel) + 4.567s (initrd) + 8.901s (userspace) = 15.592s

3、识别各阶段含义:
kernel 阶段耗时高,表明问题可能出在 BIOS/UEFI 设置、硬件自检或内核驱动加载环节
initrd 阶段耗时高,常见于加密卷解锁延迟、LVM/RAID 检测超时或缺失必要驱动模块
userspace 阶段耗时高,则需进一步排查 systemd 托管的服务或挂载单元

二、列出最耗时的服务与挂载单元

systemd-analyze blame 命令按启动耗时倒序排列所有已激活的 unit(包括 .service、.mount、.automount 等),便于快速识别 TOP 耗时项。该命令默认显示前 20 个,适用于发现明显拖慢启动的单元。

1、在终端中运行:
systemd-analyze blame

2、若需查看全部结果且避免分页截断,添加 --no-pager 参数:
systemd-analyze blame --no-pager

3、重点关注以下类型单元:
耗时超过 1 秒的 .service 单元,如 NetworkManager-wait-online.service、docker.service 或自定义监控代理
状态长期处于 activating (start) 的单元,说明其依赖未满足或初始化卡死
异常耗时的 .mount 单元,提示 /etc/fstab 中存在不可达设备或挂载选项不当

三、分析启动关键路径与瓶颈依赖

systemd-analyze critical-chain 命令展示从启动起点至指定 target(默认为 default.target)的最长依赖链,即决定整体启动时长的关键路径。该路径上的任一单元延迟,都会直接拉长总耗时。

1、执行命令查看默认目标的关键链:
systemd-analyze critical-chain

2、若需分析图形界面目标,指定 target 名称:
systemd-analyze critical-chain graphical.target

3、逐级展开每个单元的依赖详情:
systemd-analyze critical-chain unit-name.service

4、结合输出判断:
若某服务反复出现在多层 critical-chain 中,说明它是多个目标的汇聚瓶颈
若 chain 中包含 network-online.target,需检查是否有非必要服务强依赖网络就绪

四、生成可视化启动时序图

systemd-analyze plot 命令导出 SVG 格式的启动流程图,以时间轴形式展现所有 unit 的启动起止时刻、并行关系与依赖间隙,适合对复杂依赖结构进行直观诊断。

1、执行命令生成图表文件:
systemd-analyze plot > boot-time.svg

2、使用浏览器打开生成的 boot-time.svg 文件

3、识别图中关键特征:
横向色块长度代表该 unit 启动持续时间,越长表示越耗时
色块重叠区域表示并行启动,空隙处反映因依赖等待产生的停滞
若某服务前后出现大片空白,说明其上游依赖尚未完成或下游无有效并行任务

五、结合日志深入定位失败或卡顿原因

journalctl -b 可提取本次启动的完整日志流,配合 -u 参数聚焦特定 unit,用于确认是否发生超时、权限拒绝、设备不可达等具体错误。

1、查看某服务本次启动全过程日志:
journalctl -b -u NetworkManager-wait-online.service

2、筛选错误与警告级别日志,缩小排查范围:
journalctl -b --level=err,warn

3、定位某挂载单元失败原因:
journalctl -b -u home.mount

4、验证 fstab 中某行配置是否引发阻塞:
sudo mount -v /dev/sdb1

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

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

下载

相关标签:

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

相关专题

更多
default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

705

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5119

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6097

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2313

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

239

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

451

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

400

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

285

24

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习