为什么 ZFS gzip-9 压缩比实际使用 zip 文件差很多?

为什么 ZFS gzip-9 压缩比实际使用 zip 文件差很多?

我正在处理一些非常大的数据包捕获文件(30 个文件,约 150GB),但由于数据包捕获的冗余度很高,使用 .zip 文件可以将这些文件压缩到原始文件大小的约 7%(14.29 倍)。

我想知道我是否可以通过创建一个带有“compression=gzip-9”设置的 ZFS 分区来“本地”处理这些文件。我创建了分区,复制了数据包捕获,最终结果是压缩率为 20.83% (4.80x)。

我很奇怪为什么会有这么大的差异。

答案1

这是因为每个记录(文件块)都是单独压缩的(以便从大文件的中间读取)。设置大记录大小:

zfs set recordsize=128k zpool/fsname

或者创建具有较大记录大小的新文件系统:

zfs create -o recordsize=128k zpool/fsname

此设置仅影响文件系统中创建的新文件fsname

相关内容