linux启动优化是这个比较大的话题,这边以virutalbox的中的ubuntu 18.04 LTS为例,闲的慌,摸石头过河,探索下启动时间优化如何进行,欢迎高手辅导。
ubuntu 虚拟机的配置如下
虚拟硬盘是在移动硬盘上的,操作系统系统是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分钟
这么一波下来,感触良多