这里有一个小技巧,可以让你了解自己的 Linux 系统启动需要多长时间,以及背后的原因。
当你启动系统时,你会等待制造商的标志出现,屏幕上可能会显示一些消息(以不安全模式启动时),接着是 Grub 界面、操作系统加载界面,最后是登录界面。
你有没有查看过整个过程花了多长时间呢?也许没有。除非你真的需要知道,否则你不会在意启动时间的细节。
但如果你好奇自己的 Linux 系统启动需要多长时间呢?使用秒表计时是一种方法,但在 Linux 中,你有更好、更简单的方法来了解系统的启动时间。
使用 systemd-analyze 检查 Linux 系统的启动时间
不管你喜不喜欢,大多数流行的 Linux 发行版都在运行 systemd。systemd 有许多管理 Linux 系统的实用工具,其中之一就是 systemd-analyze。
systemd-analyze 命令会详细显示上次启动时运行了哪些服务,以及每个服务花费的时间。
如果你在终端中运行以下命令:
1 | systemd-analyze |
你将得到总的启动时间,以及固件、引导加载程序、内核和用户空间各自花费的时间:
1 | Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704s |
从上面的输出可以看出,我的系统大约花了 35 秒才进入可以输入密码的界面。我使用的是戴尔 XPS Ubuntu 版,它配备了固态硬盘,但启动仍然需要这么长时间。
不太令人满意,对吧?你不妨分享一下你系统的启动时间,咱们来比一比。
你可以使用以下命令将启动时间进一步细分到每个单元:
1 | systemd-analyze blame |
这将产生大量输出,所有服务将按照花费时间从长到短的顺序列出。
1 | 7.347s plymouth-quit-wait.service |
请记住,这些服务是并行运行的。并不是说 plymouth-quit-wait.service 运行 7 秒后,NetworkManager 再运行 6 秒。它们是相互并行运行的。
额外贴士:缩短启动时间
从输出结果可以看出,网络管理器和 Plymouth 都占用了大量的启动时间。
Plymouth 负责在 Ubuntu 和其他发行版的登录界面之前显示启动动画。网络管理器负责网络连接,你可以将其关闭以加快启动时间。别担心,登录后,你的 Wi-Fi 仍会正常工作。
1 | sudo systemctl disable NetworkManager-wait-online.service |
如果你想恢复更改,可以使用以下命令:
1 | sudo systemctl enable NetworkManager-wait-online.service |
现在,请不要在不了解服务用途的情况下自行禁用各种服务,这可能会产生严重后果。
同样,你也可以使用 systemd 来调查你的 Linux 系统关机时间过长的原因。
既然你已经知道如何检查 Linux 系统的启动时间了,何不在评论区分享一下你系统的启动时间呢?