我们在启用了lz4压缩的zfs上托pipe了一个postgresql95 OLAP数据库。 build议我们将zfs recordsize调整为8KB,因为这是postgres块的大小。 提前写入日志位于自己的数据集,其logging大小设置为1M:
NAME PROPERTY VALUE SOURCE ssd recordsize 128K default ssd/pgdata recordsize 8K local ssd/pgdata/log recordsize 1M local
我注意到日志压缩比较好。 我不知道原因是它是更可压缩的,或者如果小logging真的伤害了压缩比。
NAME PROPERTY VALUE SOURCE ssd compressratio 1.84x - ssd/pgdata compressratio 1.84x - ssd/pgdata/log compressratio 2.64x -
是的,它会影响压缩比。 我已经回到了Postgres的128K的logging大小,因为在8K的压缩比较差,不值得潜在的性能提升。
在ZFS上,recordsize中设置的值不是一个硬性规则,它是一个上限:
在ZFS中,所有文件都存储为一个不同大小的单个块(直到logging大小)或使用多个logging块。 来自: https : //blogs.oracle.com/roch/entry/tuning_zfs_recordsize
所以我认为你所看到的价值观与存储的数据有关。