时间:2024-05-20
bootchart是开机优化中主要工具,通过bootchart可以直观的查看系统启动过程中各个过程耗费的时间。
对于开机时间衰退的case,还可以拿衰退的开机bootchart和正常开机bootchart进行对比,帮助我们快速定位。
systemd提供了一些命令,最主要的作用是可以帮助我们分析service的依赖关系
当然,它也可以帮助我们对系统的service有个初步印象。
下面是几个常用命令:
systemd-analyze blame
systemd-analyze critical-chain
systemctl list-dependencies
开机优化的第一步几乎都是梳理关键路径,需要对关键路径、关键参数做到心中有数。
关注时间轴上cpu和io的利用率,找出瓶颈。
对于时间轴上cpu利用率低的阶段,进行优化。
对于cpu利用率,要考虑是否有必要在某些阶段留点buffer,让实时性高的服务、任务有机会抢占,调度。
对于io频繁的服务,考虑是否能够批量io,节省资源消耗。
根据依赖关系、cpu和io情况,合理调整启动顺序。对于依赖关系简单的服务,看情况调整到cpu利用率低的时段,对于关键路径上被依赖的程序,尽量早启动。
对非关键路径的应用,延迟启动。
对启动开销较大的服务,考虑是否能够拆分服务阶段,将必要、紧急的工作放前面,将部分耗时,且不紧急的工作放后面。