linux啟動優化是這個比較大的話題,這邊以virutalbox的中的ubuntu 18.04 LTS為例,閑的慌,摸石頭過河,探索下啟動時間優化如何進行,歡迎高手輔導。
ubuntu 虛擬機的配置如下
- 2 cpu
- 2G 內存
虛擬硬盤是在移動硬盤上的,操作系統系統是ubuntu 18.04 LTS, 安裝了ubuntu-desktop
ubuntu 使用了systemd 啟動服務的,有個工具是systemd-analyze可以用來做啟動分析。
這里看到,啟動graphical花了57s, 系統整體啟動花了12分鐘,時間都去哪了呢
貌似apt update 這個沒必要搞,自己想要升的時候升就好了,關了,免的啟動占內存。
systemctl disable
其他的service 挨個的baidu,google 一把,用不到的關了,像ModemManager.service, wpa_supplicant.service , 沒這個硬件設備,fstrim.service 這個,老子是硬盤,不是ssd,關了都關了
各式各樣的關完一遍,重啟下,看看能不能起來,功能正常,起不來,就重新打開,這是一個長期的過程。
這階段下來時間基本上就是進1 min了,但是graphical 的啟動時間還是太長
關鍵路徑分析下
systemd-analyze critical-chain
紅的貌似都不能干掉的樣子,咋辦?
systemd-analyze polt > starup.svg
會生成一個巨nb的unit啟動圖,如下
根據圖例看啟動的svg,還是因為同時啟動的東西太多了,繼續干服務, 中間你可能會發現有服務明明關了,但是又起來了,你需要
systemctl list-dependencies default.target
來了解下他們直接的依賴關系
snapd的時間始終都下不來
最后查了一波,snapd 貌似是個bug,vboxadd.service貌似也做的不怎么好,為了啟動時間,強關了
一波猛如虎的操作后,時間進入了30s
勉強努力了下,算是有點成果了吧,但是現實還是挺打臉的,雖然上面標得時間是24s,但是gdm顯示出來還是很耗時間的,要差不多1分鐘
這么一波下來,感觸良多
- 要啟動快不要選systemd,解析load那一波unit 要幾秒鐘,傷不起
- ubuntu或者應該說gnome的桌面系統的性能有待加強






