Мы размещаем базу данных OLAP postgresql95 на zfs с включенным сжатием lz4. Как рекомендовано, мы настроили размер записи zfs на 8 КБ, поскольку это размер блока 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 -
Да, это влияет на степень сжатия. Я вернулся к размеру записи 128 КБ для Postgres, потому что плохое сжатие при 8 КБ не стоило потенциального прироста производительности.
В ZFS значение, заданное в параметре Recordsize, не является жестким правилом, это верхний предел:
В ZFS все файлы хранятся либо в виде одного блока разного размера (до размера записи), либо с использованием нескольких блоков размера записи. Из: https://blogs.oracle.com/roch/entry/tuning_zfs_recordsize
Поэтому я думаю, что значения, которые вы видите, связаны с данными, которые хранятся.