📜  使用 systemd-analyze 命令在 Linux 中查找系统启动性能统计信息(1)

📅  最后修改于: 2023-12-03 14:49:47.129000             🧑  作者: Mango

使用 systemd-analyze 命令在 Linux 中查找系统启动性能统计信息

在 Linux 系统中,systemd 提供了一系列的工具来帮助我们管理系统的服务、查看系统状态信息等等。其中之一就是 systemd-analyze 命令,它可以帮助我们查找系统的启动性能统计信息。

什么是 systemd

在深入 systemd-analyze 命令之前,我们需要先了解一下 systemd

systemd 是一个用于 Linux 操作系统的系统和服务管理器。它是系统启动过程中的第一个进程,负责系统初始化和服务管理。通过 systemd,我们可以控制 Linux 系统中的各种服务、进程和挂载点等等。

systemd 的一些优点包括:

  • 并行启动服务,提高启动速度
  • 提供精细的服务管理
  • 使用 systemctl 命令进行控制
  • 简化了系统初始化过程
systemd-analyze 命令的作用

systemd-analyze 命令可以帮助我们分析系统启动的性能统计信息。其主要用途包括:

  • 查看系统启动时间
  • 查看服务启动时间
  • 查看服务依赖关系
  • 查看启动过程中的日志信息

下面我们来一一介绍这些功能。

查看系统启动时间

使用 systemd-analyze 命令可以查看系统启动时间,包括系统启动总时间和内核启动时间。

$ systemd-analyze

Startup finished in 1.946s (kernel) + 5.770s (userspace) = 7.717s 
graphical.target reached after 5.763s in userspace

这里可以看到,系统总共启动了 7.717 秒,其中内核启动时间为 1.946 秒,用户空间启动时间为 5.770 秒。

可以通过 systemd-analyze blame 命令查看服务启动时间。

查看服务启动时间

使用 systemd-analyze blame 命令可以查看每个服务启动所花费的时间,并按照时间倒序排列。

$ systemd-analyze blame

    4.764s NetworkManager-wait-online.service
    1.855s snapd.service
    1.778s plymouth-quit-wait.service
    1.144s dev-sda6.device
    1.080s systemd-logind.service
     ...

这里以 NetworkManager-wait-online.service 为例,可以看到它启动所花费的时间为 4.764 秒。

查看服务依赖关系

使用 systemd-analyze dot 命令可以生成服务依赖关系图,这样我们就可以清晰地看到每个服务之间的依赖关系。

$ systemd-analyze dot | dot -Tpng -o graph.png

这里生成了一个名为 graph.png 的图片文件,我们可以使用图片浏览器打开它。

查看启动过程中的日志信息

使用 systemctl status 命令可以查看指定服务的状态信息,包括启动时间、状态等等。

$ systemctl status NetworkManager.service

● NetworkManager.service - Network Manager
   Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-06-05 22:31:16 CST; 56min ago
     Docs: man:NetworkManager(8)
 Main PID: 902 (NetworkManager)
    ...

这里以 NetworkManager.service 为例,可以看到它的启动时间为 2021年 6月 5日 星期六 22:31:16 CST。

总结

systemd-analyze 命令是 Linux 系统中一个非常有用的工具。通过它,我们可以了解系统启动的性能信息,更好地管理和调优系统。在使用时,我们应该熟悉其常见的用法,同时也要了解 systemd 的基本概念和原理。