Назад | Перейти на главную страницу

Влияет ли zfs recordsize на коэффициент сжатия

Мы размещаем базу данных 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

Поэтому я думаю, что значения, которые вы видите, связаны с данными, которые хранятся.