Boot

SysV 與 Systemd 的啟動時間 - systemd 系統需要大約 2 秒的時間!

  • October 8, 2017

meta-raspberrypi用來建立我的raspberrypi形象

systemd與 SysV 相比,我發現啟動時間增加了大約 2 秒。

Systemv_Systemd_kernel_log_comp

我沒有從核心日誌中獲得太多資訊。

系統

[    4.452082] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    8.111375] i2c /dev entries driver
[    8.284057] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

系統V

[    3.839449] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    5.990874] i2c /dev entries driver
[    6.136112] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

從上面可以看出 systemd 在基本核心啟動之後和載入 i2c 核心模組之前花費了一些額外的時間。

我假設這段時間花在啟動 systemd 服務上。

如果是,我如何檢查哪些服務已啟動以及每個服務需要多少時間?

首先,我觀察到您問題中的兩個輸出都來自 SysV init ( INIT: version 2.88),因此在某些時候您會感到困惑。

無論如何,WRT各種服務的時間,你可以得到一個漂亮的SVG systemd-analyze plot > sysd.svg(這裡的重定向是必要的,否則它會將SVG數據列印到標準輸出,這不是很有用):

在此處輸入圖像描述

沒有輸出格式的選擇,但是這個(來自執行 Raspbian 8 的 B+)被轉換為 JPEG convert sysd.svg sysd.jpgconvert是 ImageMagick 的一部分,可在任何 Linux 發行版上使用)。

可以使用更簡單的文本列表systemd-analyze blame

systemd 正在啟動,所以我不需要任何服務

可能,但通常不會花費任何時間。例如,如果某個服務負責設置 NFS,但您尚未配置任何此類文件系統,則它不會佔用任何時間或資源。

當然,為了整潔,你可能還是想擺脫它們。確保您首先確定某物的用途。 systemctl list-units在這裡很有用,因為預設情況下它提供了一個簡單的載入服務列表。Systemd 有很多手冊頁;你可以找到它們apropos systemd(如果你沒有得到任何輸出,請先嘗試sudo mandb,無論出於何種原因,有時這在某些發行版上沒有跟上)。其中許多是編寫服務文件的指南;將其嚴格限制為使用apropos -s 1 systemd.

引用自:https://unix.stackexchange.com/questions/396260