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

341 阅读4分钟

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

在本指南结束时,你将对影响Linux系统启动时间的因素以及如何计算其总时间有一个简单的了解。你还会学到减少启动时间的方法,把你的电脑变成一个快速反应的野兽。

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

systemd是默认的服务管理器,预装在大多数Linux发行版上。使用systemd-analyze命令,你可以获得关于系统先前启动的详细统计数据。你还可以看到服务的分类,了解每个服务在启动过程中花费的时间。

要使用systemd-analyze检查启动时间,请输入。

systemd-analyze

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

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

要获得每个服务在启动过程中所花费的时间,可以使用systemd-analyze的责备方法。

systemd-analyze blame

这将产生看起来有点像下面的输出。

正如你所看到的,输出显示了所有服务的列表以及每个服务所花费的时间。

什么影响了Linux的启动时间?

当你启动你的Linux系统时,BIOS是第一个被加载的东西。然后,BIOS将控制权转移到MBR(主引导记录),后者启动GRUB引导程序。GRUB负责加载内核,内核进一步设置初始根文件系统并执行init程序。然后执行其他服务。

这些其他服务所花费的时间占了系统启动时间的最大份额。启动过程中的服务越多,启动系统的时间就越长。因此,如果你想让你的系统启动得更快,停止不必要的服务在启动期间运行是很重要的。

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

你不能阻止init进程或GRUB引导程序在启动时启动,因为这将导致你的系统启动顺序出现问题。然而,你可以禁用系统中不重要的服务,使它们在启动时不运行。

systemctl工具允许你管理Linux上的服务。使用该工具,你可以轻松地启动和停止服务。但首先,让我们来提醒一下,在上一次启动时有哪些服务启动了。

systemd-analyze blame

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

由于它对本地系统来说不是一个重要的服务,你可以用systemctl禁用它,以节省开机时的一些时间。

sudo systemctl disable exim4-base.service

注意:如果你不完全确定你在做什么,你应该在禁用任何服务之前向有经验的Linux用户咨询。禁用一个关键服务可能会导致操作系统出现意想不到的问题。

要再次启用一个服务,只需在systemctl命令中用enable替换disable

sudo systemctl enable exim4-base.service

通过这个过程,你可以调整系统启动的服务以减少启动时间。

在不改变硬件的情况下改善Linux的启动时间

虽然许多人建议在固态硬盘上安装Linux以改善启动时间,但你可以通过禁用系统上不需要的服务来免费做到这一点。虽然这不会大幅减少启动时间,但如果你想要一台性能迅速的电脑,那么每一秒都很重要。

想拥有一个快速反应的系统吗?在你的电脑上安装一个轻量级和最小的Linux发行版可以帮助你。