postgresql为适应大多数情况,默认page size页大小为8192.但是,在SSD硬盘上这不一定适用,在不同的页大小性能差异非常显著。
例子如不做说明均表示随机读或写
例如某SSD硬盘,说明书表示使用 4kB Page size 可以达到75000IOPS,但是 8kB Page size 只有47500IOPS,8kB性能下降了40%(具体情况参看SSD说明书),在这种情况下,在安装postgresql时,我们可以将postgresql的页大小更改为4K,使之能适应SSD硬盘.具体操作如下:
注意:
1.具体使用4kb还是8kb请参阅ssd说明书,如果不知道可以分别测试或使用默认的8KB
2.可以先使用测试环境分别测试4K和8K page size的读写效率
3.注意注意注意(重要的情况说3遍),更改页大小后必须重新initDB,8Kb时initDB的数据不能使用
4.postgresql的block_size值范围为1KB-1MB(src\backend\utils\misc\guc.c中说明)
5.更改page size只能通过编译源码的方式,使用--with-blocksize=4选项(以KB为单位)
查看page size大小
show block_size;
在编译时设置页面大小
./configure --prefix=/usr/local/pgsql --with-blocksize=4
注意注意注意(重要的情况说6遍),更改页大小后必须重新initDB,8Kb时initDB的数据不能使用
show wal_block_size;
show segment_size;
show wal_segment_size;