Linux 内核中的内存缓存机制zram是将匿名页压缩后进行保存,以节省内存的开销。zram使用的压缩算法的性能及压缩率对内存回收的效率有很大的影响,且解压缩性能会影响pagefault的响应时间,因此,zram使用的压缩算法的压缩率和性能非常关键。当前内核支持的压缩算法(lz4、lzo等)并非针对匿名页定制的压缩算法,本项目目标是针对匿名页特征,设计出高压缩率高性能的压缩算法。
我们利用了 Intel® 机器的特性,使用 Intel® QuickAssist Technology (QAT) 的硬件支持来增强压缩效果。将原 zram 的部分压缩算法使用 QATzip 加速。
git clone https://gitlab.eduxiji.net/T202418123994973参照官方仓库安装。具体需要先 QATlib (QATzip运行的必要硬件驱动支持)。接着安装QATzip。
记模块的名字为NAME,在Makefile中默认为qzram,用户也可以自定义。
编译
make清除所有编译结果
make clean加入模块,默认创建一个zram设备:使用lz4算法压缩、8G大小、作为系统内最高优先级的交换空间
make insmod移除模块
make rmmod基本用法和原来的zram保持一致,因为我们只对压缩的部分进行了处理。