linux啟動優(yōu)化是這個比較大的話題,這邊以virutalbox的中的ubuntu 18.04 LTS為例,閑的慌,摸石頭過河,探索下啟動時間優(yōu)化如何進行,歡迎高手輔導(dǎo)。
ubuntu 虛擬機的配置如下
- 2 cpu
- 2G 內(nèi)存
虛擬硬盤是在移動硬盤上的,操作系統(tǒng)系統(tǒng)是ubuntu 18.04 LTS, 安裝了ubuntu-desktop
ubuntu 使用了systemd 啟動服務(wù)的,有個工具是systemd-analyze可以用來做啟動分析。

這里看到,啟動graphical花了57s, 系統(tǒng)整體啟動花了12分鐘,時間都去哪了呢

貌似apt update 這個沒必要搞,自己想要升的時候升就好了,關(guān)了,免的啟動占內(nèi)存。
systemctl disable

其他的service 挨個的baidu,google 一把,用不到的關(guān)了,像ModemManager.service, wpa_supplicant.service , 沒這個硬件設(shè)備,fstrim.service 這個,老子是硬盤,不是ssd,關(guān)了都關(guān)了
各式各樣的關(guān)完一遍,重啟下,看看能不能起來,功能正常,起不來,就重新打開,這是一個長期的過程。

這階段下來時間基本上就是進1 min了,但是graphical 的啟動時間還是太長
關(guān)鍵路徑分析下
systemd-analyze critical-chain

紅的貌似都不能干掉的樣子,咋辦?
systemd-analyze polt > starup.svg
會生成一個巨nb的unit啟動圖,如下


根據(jù)圖例看啟動的svg,還是因為同時啟動的東西太多了,繼續(xù)干服務(wù), 中間你可能會發(fā)現(xiàn)有服務(wù)明明關(guān)了,但是又起來了,你需要
systemctl list-dependencies default.target
來了解下他們直接的依賴關(guān)系

snapd的時間始終都下不來

最后查了一波,snapd 貌似是個bug,vboxadd.service貌似也做的不怎么好,為了啟動時間,強關(guān)了
一波猛如虎的操作后,時間進入了30s

勉強努力了下,算是有點成果了吧,但是現(xiàn)實還是挺打臉的,雖然上面標得時間是24s,但是gdm顯示出來還是很耗時間的,要差不多1分鐘
這么一波下來,感觸良多
- 要啟動快不要選systemd,解析load那一波unit 要幾秒鐘,傷不起
- ubuntu或者應(yīng)該說gnome的桌面系統(tǒng)的性能有待加強