Обсуждение: Issues with blocksize smaller than 8KB

Поиск
Список
Период
Сортировка

Issues with blocksize smaller than 8KB

От
Casey Shobe
Дата:
I have been comparing performance of postgresql (18.0) compiled for various block sizes etc., and found that while 8kb
and16kb builds work fine, a 4kb build does not, with identical configuration.  When I try to initialize pgbench,
--scale=10works fine, but the --scale=100 I was trying and even just --scale=20 result in a long delay on the vacuum
analyzestep followed by Postgres crashing due to a segmentation fault. 

I also found that initdb fails when I compile for a blocksize of either 1KB or 2KB build:

2025-10-17 15:39:13.182 UTC [97433] DETAIL:  The database cluster was initialized with RELSEG_SIZE 1895825408, but the
serverwas compiled with RELSEG_SIZE 1895825408. 
2025-10-17 15:39:13.182 UTC [97433] HINT:  It looks like you need to recompile or initdb.

- Casey


Re: Issues with blocksize smaller than 8KB

От
Tom Lane
Дата:
Casey Shobe <casey.allen.shobe@icloud.com> writes:
> I have been comparing performance of postgresql (18.0) compiled for various block sizes etc., and found that while
8kband 16kb builds work fine, a 4kb build does not, with identical configuration.  When I try to initialize pgbench,
--scale=10works fine, but the --scale=100 I was trying and even just --scale=20 result in a long delay on the vacuum
analyzestep followed by Postgres crashing due to a segmentation fault. 
> I also found that initdb fails when I compile for a blocksize of either 1KB or 2KB build:

> 2025-10-17 15:39:13.182 UTC [97433] DETAIL:  The database cluster was initialized with RELSEG_SIZE 1895825408, but
theserver was compiled with RELSEG_SIZE 1895825408. 
> 2025-10-17 15:39:13.182 UTC [97433] HINT:  It looks like you need to recompile or initdb.

I could not reproduce any of these misbehaviors here.  I suspect you
have a build process problem, ie failure to clean out all compilation
products when reconfiguring.  You need at least "make clean", and
personally I usually use "make distclean" or "git clean -dfxq".

(In theory, using --enable-depend would let you be sloppy about this,
but I've never particularly trusted that option.  It definitely will
not work to change configure settings without that.)

            regards, tom lane