本文介绍: systemd是Linux系统中一种广泛使用初始化系统,它负责引导用户空间管理系统进程。它主要由两部分组成:一个系统/服务管理器,以及众多工具和库。其中,是systemd一个工具,可以提供有关系启动过程信息。它可以帮助用户分析系统启动时间,并找出可能导致启动缓慢的原因

Ubuntu systemdanalyze命令剖析

systemd-analyze一个用于系统启动性能分析的强大工具,本文将全面解析该命令在Ubuntu系统中的应用

目录

简介

systemdsystemdanalyze

systemd 是Linux系统中一种广泛使用初始化系统,它负责引导用户空间并管理系统进程。它主要由两部分组成:一个系统/服务管理器,以及众多工具和库。

其中,systemd-analyzesystemd 的一个工具,可以提供有关系统启动过程的信息。它可以帮助用户分析系统启动时间,并找出可能导致启动缓慢的原因。

工作原理

systemd-analyze 主要通过读取系统日志journal)和分析systemd内部数据结构获取系统启动信息。此外,它还可以生成启动过程的图形表示,这对于可视化分析系统启动流程非常有用。


安装使用

在大多数Ubuntu版本中,systemd-analyze已经被默认安装。如果未安装,可以通过以下命令进行安装:

sudo apt-get install systemd

使用 systemd-analyze,只需在命令行输入

systemd-analyze

命令参数详解

systemd-analyze 提供了许多命令行选项参数可以用于定制分析的内容格式。以下是一些最常用选项


用例示例

以下是 systemd-analyze 的一些常见用例示例

显示启动时间(systemd-analyze time

systemd-analyze time

在这里插入图片描述

返回信息解读

这个返回信息为例

root@ubuntu:~# systemd-analyze time
Startup finished in 7.356s (kernel) + 3min 9.863s (userspace) = 3min 17.219s
graphical.target reached after 3min 9.754s in userspace

这个输出的意思是,你的系统总共用了3分17.219秒来启动。这个时间被分为部分内核花费了7.356秒的时间来启动,而用户空间(userspace)花费了3分9.863秒的时间来启动。”graphical.target reached after 3min 9.754s in userspace”表示图形用户界面在用户空间开始启动后3分9.754秒才完全启动。

不是3分17.219秒+3分9.754秒。这两个时间中,一个是总体启动时间,另一个是用户空间启动时间,其中用户空间启动时间包含在总体启动时间内。

时序图大概如下

Total startup time (3m 17.219s)
|-------------------------------------------------------|
Kernel startup (7.356s)
|----|
Userspace startup (3m 9.863s)
     |--------------------------------------------------|
Graphical target reached (3m 9.754s in userspace)
     |-------------------------------------------------|

注意这里所有的时间都是从同一起点开始的,并非相互累积。

列出启动过程中各个服务的启动时间(systemd-analyze blame)

systemd-analyze blame

在这里插入图片描述

上面有的启动耗时较长的服务可以选择关掉,以下是对以上服务的分析:

  1. systemd-networkd-wait-online.service: 这个服务等待网络连接可用。如果你的系统不依赖于启动时立即有网络连接,那么你可以尝试关闭它。

  2. apt-daily-upgrade.serviceapt-daily.service: 这两个服务用于处理和应用系统更新。通常情况下,我们推荐关闭它们,因为这可能会导致你错过重要的安全更新。但是,如果你正在寻找缩短启动时间,可以考虑禁用它们,并定期手动进行系统更新

  3. dev-nvme0n1p1.device: 这个服务是关于硬盘驱动器的,建议不要关闭

  4. nv-l4t-usb-device-mode.servicenv.service: 这两个服务似乎与NVIDIA硬件相关。如果你正在使用相关硬件,最好不要关闭它们。

  5. docker.servicecontainerd.service: 如果你不使用Docker,你可以关闭这些服务。

  6. alsa-restore.service: 这个服务用于恢复声音设置。如果你不需要声音功能,可以考虑关闭它。

  7. nvpmodel.service: 这个服务用于管理NVIDIA Jetson平台功率模式。如果你正在使用Jetson硬件,最好不要关闭它。

  8. snapd.seeded.servicesnapd.service: 这些服务用于管理Snap应用。如果你不使用Snap应用,你可以关闭这些服务。

  9. nv-l4t-bootloader-config.service: 这个服务似乎与NVIDIA的bootloader相关建议不要关闭。

  10. systemd-udev-trigger.service: 这个服务用于触发udev事件,通常情况下,最好不要关闭。

  11. xrdp.service: 这个服务是远程桌面协议服务,如果你不需要远程访问,可以关闭它。

  12. networkd-dispatcher.service: 这个服务用于处理网络状态变化的事件。如果你的系统不依赖于动态网络配置,那么你可以尝试关闭它。

  13. user@124.service: 这可能是特定用户的服务,没有足够的信息来判断是否可以关闭。

显示系统启动过程的关键链(systemd-analyze critical-chain

systemd-analyze critical-chain

在这里插入图片描述

上游的目标受下游目标启动影响

生成启动过程的SVG图像(systemd-analyze plot > boot.svg

systemd-analyze plot > boot.svg

在这里插入图片描述

在这里插入图片描述


性能优化

通过 systemd-analyze 分析后,可能发现一些服务导致系统启动变慢针对这种情况,可以尝试以下优化方法


原文地址:https://blog.csdn.net/Dontla/article/details/134720775

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38648.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注