你的 Linux 系統(tǒng)開(kāi)機(jī)時(shí)間已經(jīng)擊敗了 99% 的電腦
當(dāng)你打開(kāi)系統(tǒng)電源時(shí),你會(huì)等待制造商的徽標(biāo)出現(xiàn),屏幕上可能會(huì)顯示一些消息(以非安全模式啟動(dòng)),然后是 Grub 屏幕、操作系統(tǒng)加載屏幕以及最后的登錄屏。
你檢查過(guò)這花費(fèi)了多長(zhǎng)時(shí)間么?也許沒(méi)有。除非你真的需要知道,否則你不會(huì)在意開(kāi)機(jī)時(shí)間。
但是如果你很想知道你的 Linux 系統(tǒng)需要很長(zhǎng)時(shí)間才能啟動(dòng)完成呢?使用秒表是一種方法,但在 Linux 中,你有一種更好、更輕松地了解系統(tǒng)啟動(dòng)時(shí)間的方法。
在 Linux 中使用 systemd-analyze 檢查啟動(dòng)時(shí)間
無(wú)論你是否喜歡,systemd 運(yùn)行在大多數(shù)流行的 Linux 發(fā)行版中。systemd 有許多管理 Linux 系統(tǒng)的工具。其中一個(gè)就是 systemd-analyze。
systemd-analyze 命令為你提供最近一次啟動(dòng)時(shí)運(yùn)行的服務(wù)數(shù)量以及消耗時(shí)間的詳細(xì)信息。
如果在終端中運(yùn)行以下命令:
- systemd-analyze
你將獲得總啟動(dòng)時(shí)間以及固件、引導(dǎo)加載程序、內(nèi)核和用戶(hù)空間所消耗的時(shí)間:
- 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
正如你在上面的輸出中所看到的,我的系統(tǒng)花了大約 35 秒才進(jìn)入可以輸入密碼的頁(yè)面。我正在使用戴爾 XPS Ubuntu。它使用 SSD 存儲(chǔ),盡管如此,它還需要很長(zhǎng)時(shí)間才能啟動(dòng)。
不是那么令人印象深刻,是嗎?為什么不共享你們系統(tǒng)的啟動(dòng)時(shí)間?我們來(lái)比較吧。
你可以使用以下命令將啟動(dòng)時(shí)間進(jìn)一步細(xì)分為每個(gè)單元:
- systemd-analyze blame
這將生成大量輸出,所有服務(wù)按所用時(shí)間的降序列出。
- 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
額外提示:改善啟動(dòng)時(shí)間
如果查看此輸出,你可以看到網(wǎng)絡(luò)管理器和 plymouth 都消耗了大量的啟動(dòng)時(shí)間。
Plymouth 負(fù)責(zé)你在 Ubuntu 和其他發(fā)行版中在登錄頁(yè)面出現(xiàn)之前的引導(dǎo)頁(yè)面。網(wǎng)絡(luò)管理器負(fù)責(zé)互聯(lián)網(wǎng)連接,可以關(guān)閉它來(lái)加快啟動(dòng)時(shí)間。不要擔(dān)心,在你登錄后,你可以正常使用 wifi。
- sudo systemctl disable NetworkManager-wait-online.service
如果要還原更改,可以使用以下命令:
- sudo systemctl enable NetworkManager-wait-online.service
請(qǐng)不要在不知道用途的情況下自行禁用各種服務(wù)。這可能會(huì)產(chǎn)生危險(xiǎn)的后果。
現(xiàn)在你知道了如何檢查 Linux 系統(tǒng)的啟動(dòng)時(shí)間,為什么不在評(píng)論欄分享你的系統(tǒng)的啟動(dòng)時(shí)間?