Facebook 工程师 Nick Terrell 近日向 Linux 内核提交了使用 Zstd 压缩 Linux 内核镜像的补丁,这些补丁显示了使用 Zstd 对内核、ramdisk 和 initramfs 进行压缩操作具备巨大潜力。
Nick 发现,在 x86_64 硬件上,当初始 RAM 文件系统将压缩算法从 XZ 切换到 Zstd 时,解压时间从 12 秒下降到只需 3 秒,此次切换整体上还给系统的引导时间带来了两秒的改进。同样看到较大改进的场景包括从 LZMA 切换到 Zstd,Nick 在切换至 Zstd 的 Facebook 服务器上发现解压时间从 12 秒下降到了 8 秒。
相关基准测试结果可查看 https://lkml.org/lkml/2020/7/1/722
至于压缩率,Zstd 的压缩率要比内核使用的 Gzip 低,但比 XZ 和 LZMA 高。不过 Zstd 是除了 LZ4 之外,解压速度最快的算法。
根据目前的情况来看,内核对 Zstd 的支持有望在下一个版本中(Linux Kernel 5.9)实现。一旦 Zstd 进入内核主线,Nick 的后续计划是放弃对 BZ2 和 LZMA(1) 的支持。这将有助于清理更多的内核代码,因为 Bzip2 和 LZMA 目前并没有在内核树之外的其他地方使用。
文章末尾固定信息