当你打开系统电源时,你会等待制造商的徽标出现,屏幕上可能会显示一些消息(以非安全模式启动),然后是 Grub 屏幕、操作系统加载屏幕以及最后的登录屏。
你检查过这花费了多长时间么?也许没有。除非你真的需要知道,否则你不会在意开机时间。
但是如果你很想知道你的 Linux 系统需要很长时间才能启动完成呢?使用秒表是一种方法,但在 Linux 中,你有一种更好、更轻松地了解系统启动时间的方法。
在 Linux 中使用 systemd-analyze 检查启动时间
无论你是否喜欢,systemd 运行在大多数流行的 Linux 发行版中。systemd 有许多管理 Linux 系统的工具。其中一个就是 systemd-analyze。
systemd-analyze 命令为你提供最近一次启动时运行的服务数量以及消耗时间的详细信息。
如果在终端中运行以下命令:
- systemd-analyze
你将获得总启动时间以及固件、引导加载程序、内核和用户空间所消耗的时间:
- Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704s
- graphical.target reached after 12.408s in userspace
正如你在上面的输出中所看到的,我的系统花了大约 35 秒才进入可以输入密码的页面。我正在使用戴尔 XPS Ubuntu。它使用 SSD 存储,尽管如此,它还需要很长时间才能启动。
不是那么令人印象深刻,是吗?为什么不共享你们系统的启动时间?我们来比较吧。
你可以使用以下命令将启动时间进一步细分为每个单元:
- systemd-analyze blame
这将生成大量输出,所有服务按所用时间的降序列出。
- 7.347s plymouth-quit-wait.service
- 6.198s NetworkManager-wait-online.service
- 3.602s plymouth-start.service
- 3.271s plymouth-read-write.service
- 2.120s apparmor.service
- 1.503s [email protected]
- 1.213s motd-news.service
- 908ms snapd.service
- 861ms keyboard-setup.service
- 739ms fwupd.service
- 702ms bolt.service
- 672ms dev-nvme0n1p3.device
- 608ms [email protected]:intel_backlight.service
- 539ms snap-core-7270.mount
- 504ms snap-midori-451.mount
- 463ms snap-screencloud-1.mount
- 446ms snapd.seeded.service
- 440ms snap-gtk\x2dcommon\x2dthemes-1313.mount
- 420ms snap-core18-1066.mount
- 416ms snap-scrcpy-133.mount
- 412ms snap-gnome\x2dcharacters-296.mount
额外提示:改善启动时间
如果查看此输出,你可以看到网络管理器和 plymouth 都消耗了大量的启动时间。
Plymouth 负责你在 Ubuntu 和其他发行版中在登录页面出现之前的引导页面。网络管理器负责互联网连接,可以关闭它来加快启动时间。不要担心,在你登录后,你可以正常使用 wifi。
- sudo systemctl disable NetworkManager-wait-online.service
如果要还原更改,可以使用以下命令:
- sudo systemctl enable NetworkManager-wait-online.service
请不要在不知道用途的情况下自行禁用各种服务。这可能会产生危险的后果。
现在你知道了如何检查 Linux 系统的启动时间,为什么不在评论栏分享你的系统的启动时间?