Linux启动速度调优

systemd 即是启动管理也是进程管理服务管理,启动时各个程序尽量并行加载,速度很快,目前大多数主流Linux发行版都已采用。

但是目前排名第一的MX-Linux默认没有使用systemd,不过可以手动选择,具体可以通过 systemd xmlinux 去google。

理由是部分mx-linux开发者认为systemd不符合unix软件设计哲学,: )

 

systemd启动调优即系统启动速度调优:

基本调试命令:

systemd-analyze blame 显示所有项目启动时间

 

systemd-analyze critical-chain 显示影响性能的启动链条(因为很多项目有启动依赖)

很多老外在论坛上上来就否定其他调优,认为只有对critical-chain的调优是有效的,这种说法太绝对,我个人经验是其他调优,

特别是对加载时间最长的调优,也是很有效的。

 

systemd-analyze plot > plot.xml  生成报表,可以用浏览器查看

 另外ubuntu自带的systemd-genie是个相当不错的图形查看程序,manjaro的官方库里也有,可以手动下载,里面可以很清晰

的查看到系统各个服务和后台程序的情况,包括依赖关系,启动方式等等,很好用

 

具体操作:

systemctl mask 是比 systemctl disable 更强的disable

很多服务是可以直接disable或者mask的,例如有些程序我们不想开机运行,可以disable,然后在桌面创建快捷方式

需要用的时候手动start, 例如向日葵的后台服务,不用的时候是完全浪费cpu,而且它平常啥也不干的时候运行还挺费的。

还有network-wait-online服务,经常发现启动慢,此服务可以mask掉,但是最好先检查哪些程序依赖wait-online,

避免某些程序不能正常启动,最简单办法就是通过浏览器查看plot.xml文件,基本能一眼看出哪些程序是在wait-online后启动的,

也可以通过刚才说的systemd-genie查看哪些程序依赖wait-online,其实systemd-genie只是一个图形工具,命令行都有相应的办法查看,只不过

此图形工具用起来比较方便。

我个人经验是,很多写的不太好的软件,如果直接屏蔽wait-online那么有可能不能正常启动,这样还有别的办法加快wait-online的速度,

例如如果是有线和无线双链接,可以直接屏蔽无线 :),或者尽量使用静态IP, 避免DHCP, 这样可以大大提高wait-online速度。

 

system-random-seed.service启动慢:

grub 内核启动参数加入random.trust_cpu=on

具体是修改/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet udev.log_priority=3 console=tty3 random.trust_cpu=on"

修改完后记得使用 sudo update-grub

另外:上面的console=tty3,是将系统启动消息输出到别的tty,适用于强迫症,这样系统启动就完全无显示了。

 

还有比较极端的加快系统启动速度的方式:可以关掉grub的主题,关掉DM的背景和用户头像,实测也能提高一点加载速度。

 

另外对于各种硬盘设备启动慢,有人建议关闭linux硬盘的开机检测和clean,个人建议不要这么做,因为在各种非正常关机的情况下,

linux会做检查和修复。

 

posted on 2022-04-28 15:27  ctcrst  阅读(977)  评论(0编辑  收藏  举报