概述
systemd-analyze 帮助系统管理员识别系统启动过程中的瓶颈,并测量每个服务对启动的贡献时间,从而诊断和解决性能问题。
主要功能
- 测量总启动时间
- 分析单个服务和单元的启动时间
- 识别对启动影响最大的“关键链”
- 可视化启动过程(SVG、DOT 图)
- 验证 systemd 单元文件
主要选项
与 systemd-analyze 命令一起使用的主要选项。
启动时间分析
可视化和调试
生成的命令:
请尝试组合命令。
描述:
`systemd-analyze` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
systemd-analyze 命令的各种用法示例。
检查总启动时间
systemd-analyze
检查系统的总启动时间。
检查按服务排序的启动时间
systemd-analyze blame
按降序显示每个服务启动所花费的时间。
分析启动关键链
systemd-analyze critical-chain
检查对启动完成影响最大的单元的依赖链。
可视化启动时间(SVG)
systemd-analyze plot > boot.svg
以 SVG 格式生成启动过程的图形,并将其保存为 'boot.svg' 文件。可以在 Web 浏览器中打开此文件。
验证单元文件
systemd-analyze verify /etc/systemd/system/my-custom.service
检查指定的 systemd 单元文件的语法错误或配置错误。
提示与注意事项
使用 systemd-analyze 时有用的提示和注意事项。
安装 Graphviz
要使用 plot 或 dot 选项生成可视化图形,需要安装 Graphviz 软件包。
- Debian/Ubuntu: sudo apt install graphviz
- CentOS/RHEL: sudo yum install graphviz
解释 blame 结果
systemd-analyze blame 的结果显示每个单元“启动所花费的时间”,但由于 systemd 会并行启动许多服务,因此不能简单地断定耗时最长的服务就是启动延迟的原因。与 critical-chain 一起分析会更准确。
启动优化
通过 critical-chain 识别的单元,可以移除不必要的依赖关系,或更改服务启动类型(例如,按需启动),以缩短启动时间。