SysV 與 Systemd 的啟動時間 - systemd 系統需要大約 2 秒的時間!
我
meta-raspberrypi
用來建立我的raspberrypi
形象
systemd
與 SysV 相比,我發現啟動時間增加了大約 2 秒。我沒有從核心日誌中獲得太多資訊。
系統
[ 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.jpg
(convert
是 ImageMagick 的一部分,可在任何 Linux 發行版上使用)。可以使用更簡單的文本列表
systemd-analyze blame
。systemd 正在啟動,所以我不需要任何服務
可能,但通常不會花費任何時間。例如,如果某個服務負責設置 NFS,但您尚未配置任何此類文件系統,則它不會佔用任何時間或資源。
當然,為了整潔,你可能還是想擺脫它們。確保您首先確定某物的用途。
systemctl list-units
在這裡很有用,因為預設情況下它提供了一個簡單的載入服務列表。Systemd 有很多手冊頁;你可以找到它們apropos systemd
(如果你沒有得到任何輸出,請先嘗試sudo mandb
,無論出於何種原因,有時這在某些發行版上沒有跟上)。其中許多是編寫服務文件的指南;將其嚴格限制為使用apropos -s 1 systemd
.