zfs recordsize 是否影响压缩率

zfs recordsize 是否影响压缩率

我们在 zfs 上托管了一个 postgresql95 OLAP 数据库,并启用了 lz4 压缩。根据建议,我们将 zfs 记录大小调整为 8KB,因为这是 postgres 块大小。预写日志位于其自己的数据集上,记录大小设置为 1M:

NAME            PROPERTY    VALUE    SOURCE
ssd             recordsize  128K     default
ssd/pgdata      recordsize  8K       local
ssd/pgdata/log  recordsize  1M       local

我注意到日志压缩率好多了。我想知道原因是它更易于压缩还是较小的记录大小真的损害了压缩率。

NAME            PROPERTY       VALUE  SOURCE
ssd             compressratio  1.84x  -
ssd/pgdata      compressratio  1.84x  -
ssd/pgdata/log  compressratio  2.64x  -

答案1

是的,它会影响压缩率。我已经将 Postgres 的记录大小恢复到 128K,因为 8K 的压缩率很差,不值得潜在的性能提升。

答案2

在 ZFS 上,recordsize 中设置的值不是硬性规定,而是上限:

在 ZFS 中,所有文件都以不同大小的单个块(最大为 recordsize)或使用多个 recordsize 块进行存储。来自:https://blogs.oracle.com/roch/entry/tuning_zfs_recordsize

所以我认为您看到的值与存储的数据相关。

相关内容