你的 Linux 系统启动需要多长时间?

当您启动系统时,它会在向您显示登录屏幕之前通过一系列事件。 你有没有检查过你的系统启动需要多长时间? 通常,这一切都发生在几秒钟或几分钟内,但我们不知道确切的时间。 有时由于某些原因,您可能需要找到系统启动所需的确切时间。 不管您想知道它的原因是什么,都有一个 systemd-analyze 实用程序可以让您知道 Linux 系统启动所需的确切时间。

虽然您可以使用时钟或秒表来监控系统开始启动的时间,但这并非适用于所有情况,尤其是对于您几乎无法重新启动的正在运行的服务器。 例如,如果您有一台运行关键服务的服务器,并且您需要确定系统启动所需的时间。 在这种情况下,您需要重新启动服务器,这不可能每次都进行。

在本文中,您将了解 Linux 系统启动需要多长时间,以及如果启动缓慢,如何减少此时间。

笔记

  • 本文中讨论的过程已在 Ubuntu 20.04 LTS 上进行了测试。 可以在启用 systemd 的任何 Linux 发行版中执行相同的过程。
  • 要打开命令行终端,请使用 Ctrl+Alt+T 键盘快捷键。

什么是系统分析?

Systemd-analyze 是一个可以用来学习系统上次启动统计信息的工具。 使用 systemd-analyze 工具,您可以找到有关系统启动所需时间以及每个单元启动所需时间的信息。 幸运的是,您不需要安装这个工具,因为它是一个内置的 systemd 工具。 您可以在终端中使用以下命令进行验证:

$ which systems-analyze

输出将显示可执行命令的完整路径。

查找系统启动所需的时间

为了找到系统启动所需的时间,只需在终端中输入 system-analyze 而不带任何命令行参数:

$ systemd-analyze

当您执行上述命令时,systemd-analyze 工具会计算系统在引导完成之前所用的时间,分为内核空间和用户空间。

正如您在上面的屏幕截图中看到的,我们系统的总启动时间为 32.378 秒。 秒并分解为:

  • 内核:6.074s
  • 用户空间:26.304s

调查/解决启动缓慢

如果启动时间较长,则需要查找哪个服务减慢了启动过程。 您可以使用 系统分析责备 命令。 此命令列出了在引导时启动的所有正在运行的服务以及它们花费的时间。 使用此信息,您可以优化系统的启动时间。

在终端中发出以下命令,以查找导致启动缓慢的服务:

$ sudo systemd-analyze blame