如何检查和改进你的 Linux 启动时间

你有没有想过你的系统启动需要多少时间? 也许您认识的人声称他们的系统启动速度比您的系统快,您对确切时间感到好奇。 虽然不是每个人都对这些数字感兴趣,但您可能会感兴趣。 您当然希望启动速度尽可能快。

在本指南结束时,您将简要了解影响 Linux 系统启动时间的因素以及如何计算其总持续时间。 您还将学习减少启动时间并将您的计算机转变为快速响应的野兽的方法。

如何使用 systemd-analyze 检查 Linux 启动时间

Systemd 是大多数 Linux 发行版上预装的默认服务管理器。 使用 系统分析 命令,您可以获得有关系统先前启动的详细统计信息。 您还可以查看服务的细分,并找出每个服务在启动期间所花费的时间。

要使用 systemd-analyze 检查启动时间,请键入:

systemd-analyze

系统将显示包含总启动时间的输出。 它还分别显示了内核和用户空间所花费的时间。

在这个 example 输出,您可以看到机器启动大约需要 9 秒。 由于上面的镜像是一个虚拟机,它的启动时间可能比正常的 Linux 安装要快。

要获取有关每个服务在引导期间所用时间的信息,请使用 责备 systemd-analyze的方法:

systemd-analyze blame

这将产生如下所示的输出:

如您所见,输出显示了所有服务的列表以及每个服务所花费的时间。

什么影响 Linux 启动时间?

启动 Linux 系统时,首先加载的是 BIOS。 然后 BIOS 将控制权转移到 MBR(主引导记录),它会启动 GRUB 引导加载程序。 GRUB 负责加载内核,内核进一步建立初始根文件系统并执行 在里面 过程。 然后执行其他服务。

这些其他服务所花费的时间占系统启动时间的最大份额。 您在启动期间拥有的服务越多,启动系统所需的时间就越长。 因此,如果您希望系统更快地启动,在启动期间停止运行不必要的服务非常重要。

如何修复启动缓慢的 Linux 机器

您不能在启动期间停止 init 进程或 GRUB 引导加载程序的启动,因为这会导致系统的启动顺序出现问题。 但是,您可以禁用系统上不重要的服务,这样它们就不会在启动期间运行。

systemctl 实用程序允许您管理 Linux 上的服务。 使用该工具,您可以轻松启动和停止服务。 但首先,让我们提醒一下上次启动期间启动了哪些服务:

systemd-analyze blame

在此输出中,您可以看到 exim4-base.service 占用启动时间的最高份额(大约三秒)。 Exim4 是一个邮件传输代理和 exim4-base 是提供 exim4 守护程序所需的必要支持文件的服务。

由于它不是本地系统的重要服务,您可以使用 systemctl 禁用它以在启动期间节省一些时间:

sudo systemctl disable exim4-base.service

笔记:如果您不完全确定自己在做什么,您应该在禁用任何服务之前咨询有经验的 Linux 用户。 禁用关键服务可能会导致操作系统出现意外问题。

要再次启用服务,只需替换 禁用使能够 在 systemctl 命令中:

sudo systemctl enable exim4-base.service

使用此过程,您可以调整系统启动的服务以减少启动时间。

在不更改任何硬件的情况下改进 Linux 启动时间

虽然许多人会建议在 SSD 上安装 Linux 以缩短启动时间,但您可以通过禁用系统上不需要的服务来免费执行此操作。 虽然它不会大幅减少启动时间,但如果您想要一台性能迅速的计算机,每一秒都很重要。

想要一个快速响应的系统? 在您的 PC 上安装轻量级和最小的 Linux 发行版会有所帮助。