linux kernel优化之rootfs
背景
因项目需求需要优化kernel的启动速度,在浏览启动日志的时候看到解压根文件系统时候花了468ms左右
优化方法:
一般情况,根文件的压缩优先选择lzo或lz4的压缩方法,这两个压缩解压速度是最快的,但是这个一般18.0版本以下的kernel需要自己手动按照,如果编译环境没有lzo或lz4的压缩解压命令就会默认使用gzip算法
定位解压的地方,确认根文件系统的解压算法init/initramfs.c
打印使用哪个解压算法
寻找压缩根文件系统的压缩脚本,我这边遇到的问题是由于docker容器内编译环境没有lzop的命令,所以使用linux系统自带的gzip算法,接下来安装zo算法相关的库和编译工具即可
lzo安装方法参考:如何在Ubuntu 12.04/Ubuntu16.04下安装lzop压缩工具源码_ubuntu lzop-CSDN博客
安装重新编译,刷机,这个时候就能看到解压算法使用lzo了
notes:
在编译需要把kenrel配置文件中相关的lzo宏全部打开,解压算法得到支持,还需要添加一行CONFIG_DECOMPRESS_LZO=y,lzo解压的接口函数才会得到支持
优化结果:
优化解压rootfs耗时:0.467853s
优化后
优化前后0.297439—>300ms