Systemd启动性能优化工具systemd-analyze

systemd-analyze简介

systemd-analyze是一个用于分析和诊断 Systemd 启动性能的命令行工具,主要用于分析和优化systemd系统启动速度。
https://opensource.com/article/20/9/systemd-startup-configuration

https://blog.csdn.net/easylife206/article/details/103790052

https://www.redhat.com/sysadmin/mastering-systemd

https://www.jinbuguo.com/systemd/systemd-analyze.html


列出与单元相关的全部目录

包括:
单元文件目录、配置片段目录(.d)、 依赖关系目录(.wants 与 .requires)。
与 --user 一起使用时表示针对 systemd 用户实例。
与 --global 一起使用时表示针对 systemd 用户实例的全局配置。

# 列出与单元相关的全部目录
systemd-analyze unit-paths

在这里插入图片描述


查看systemd启动总耗时

# 查看systemd启动总耗时
systemd-analyze

在这里插入图片描述


查看systemd启动耗时明细

# 查看systemd启动耗时明细
systemd-analyze blame

image.png


显示系统启动过程中关键的systemd单元(units)之间的依赖关系和时间信息

# 显示系统启动过程中关键的systemd单元(units)之间的依赖关系和时间信息
systemd-analyze critical-chain

在这里插入图片描述


查看指定服务启动依赖关系和时间信息

可以看到network.service耗时 最长,花了17.201秒。
这里的记时有可能是等待其他服务器启动的,再来看看其关联服务的启动时间:

# 查看指定服务启动依赖关系和时间信息
systemd-analyze critical-chain network.service

image.png


查看有哪些开机启动的服务可被优化

# 查看有哪些开机启动的服务可被优化
systemctl list-unit-files --type=service | grep enabled

image.png


导出到SVG分析图

# 导出到SVG分析图
systemd-analyze plot > /tmp/bootup.svg

在这里插入图片描述

# 生成描述单元间依赖关系的 SVG 图
systemd-analyze dot | dot -Tsvg > systemd.svg

检查服务单元(units)文件语法是否正确

创建新的单元文件后,验证其语法是否正确,如果配置正确不会有输出

# 服务单元(units)文件验证
systemd-analyze verify 服务单元路径

在这里插入图片描述


分析指定服务单元的安全性和沙箱设置

# 分析指定服务单元的安全性和沙箱设置
systemd-analyze security 服务单元

image.png


查看systemd设置的日志级别

# 查看systemd当前设置的日志级别
systemctl -pLogLevel show

image.png


临时设置systemd的日志级别

# 临时修改systemd的日志级别为notice
systemd-analyze set-log-level notice

# 查看systemd当前设置的日志级别
systemctl -pLogLevel show

永久修改systemd的日志级别

# 修改systemd配置文件
vim /etc/systemd/system.conf

image.pngimage.png

# 修改完配置后重启systemd守护进程
systemctl daemon-reload

打印systemd守护进程当前的日志等级

# 打印systemd守护进程当前的日志等级
systemd-analyze get-log-level

image.png


查看systemd守护进程当前的日志目标

# 打印systemd 守护进程当前的日志目标
systemd-analyze get-log-target

image.png


临时修改systemd的日志目标

# 将systemd守护进程的日志目标更改为 TARGET
systemd-analyze set-log-target TARGET

显示全部系统调用集合的详情

# 查看所有过滤器
systemd-analyze syscall-filter

在这里插入图片描述

systemd-analyze syscall-filter [SET…] 如果指定了至少一个 SET 参数,那么仅显示指定的集合所包含的系统调用列表; 否则显示全部系统调用集合的详情。注意,必须在 SET 参数中包含 “@” 前缀。

# 查看指定过滤器
systemd-analyze syscall-filter @ipc

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/omaidb/article/details/131893720