回答:
私が使用したすべてのLinuxシステムでSHMALL
は、ページSHMMAX
単位で測定され、バイト単位で測定されます。ipcs
出力中に常に上記のパラメーターをキロバイト単位で変換するコマンドを使用してシステムをチェックし、sysctl
値と比較できると思います。
[aseryozhin@centos ~]$ ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096 // SHMMNI
max seg size (kbytes) = 524288 // SHMMAX
max total shared memory (kbytes) = 8388608 // SHMALL
min seg size (bytes) = 1
[aseryozhin@centos ~]$ sysctl -e kernel.shmmax
kernel.shmmax = 536870912
[aseryozhin@centos ~]$ sysctl -e kernel.shmall
kernel.shmall = 2097152
[aseryozhin@centos ~]$ getconf PAGE_SIZE
4096
SHMMAX:524288 * 1024 = 536870912
SHMALL:8388608 * 1024/4096 = 2097152
これらの変数は、ドキュメントに記載されているようにバイト単位で測定されます。postgresqlの設定パラメータを確認することがより重要だと思います。必要に応じて、SHMALL / SHMMAX値を確認する必要があります。たとえば、接続の最大数を増やしたい場合は、これらの制限を増やす必要があるかもしれません。
データベースサーバーのチューニングは、同時接続数やデータベースサイズなどの使用パターンによって異なります。設定パラメータを増やすことは常に良いとは限りません。