Sim, isso afeta a taxa de compactação. Voltei ao tamanho de registro de 128K para o Postgres porque a baixa compactação de 8K não valia os ganhos potenciais de desempenho.
Hospedamos um banco de dados OLAP postgresql95 no zfs com a compactação lz4 ativada. Conforme recomendado, ajustamos o tamanho do registro zfs para 8 KB, já que este é o tamanho do bloco postgres. O log de gravação à frente está em seu próprio conjunto de dados com o conjunto de registros configurado como 1M:
NAME PROPERTY VALUE SOURCE
ssd recordsize 128K default
ssd/pgdata recordsize 8K local
ssd/pgdata/log recordsize 1M local
Notei que o compressionrate do log é muito melhor. Gostaria de saber se a razão é que é apenas mais compressível ou se o pequeno registro realmente prejudica a compactação.
NAME PROPERTY VALUE SOURCE
ssd compressratio 1.84x -
ssd/pgdata compressratio 1.84x -
ssd/pgdata/log compressratio 2.64x -
Sim, isso afeta a taxa de compactação. Voltei ao tamanho de registro de 128K para o Postgres porque a baixa compactação de 8K não valia os ganhos potenciais de desempenho.
No ZFS, o valor definido no registro não é uma regra difícil, é um limite superior:
In ZFS all files are stored either as a single block of varying sizes (up to the recordsize) or using multiple recordsize blocks. From: https://blogs.oracle.com/roch/entry/tuning_zfs_recordsize
Então, acho que os valores que você está vendo estão relacionados aos dados armazenados.
Tags postgresql zfs