PGSQL 9.2
を実行しており、ハードウェアの仕様は次のとおりです。
OS: CentOS7 64bit
CPU: 24
Memory: 32GB
Disk: SSD
Shmmax/shmall値を計算したいのですが、良い方法は何でしょうか?私はそれをグーグルで検索し、人々は総メモリの50%と言っています。しかし、私のボックスではPGSQLしか実行していないのに、合計メモリの80%を実行しないのはなぜですか?
kernel.shmmax
28GBを構成できますか? LinuxOS用に4Gを維持します。
何を指示してるんですか?
shmmax
とshmall
は割り当てではなく、カーネルの制御ノブであり、共有メモリセグメントの最大サイズと共有メモリページの数を制御できます。
sysctlドキュメント からの引用:
shmall:
This parameter sets the total amount of shared memory pages that
can be used system wide. Hence, SHMALL should always be at least
ceil(shmmax/PAGE_SIZE).
If you are not sure what the default PAGE_SIZE is on your Linux
system, you can run the following command:
# getconf PAGE_SIZE
==============================================================
shmmax:
This value can be used to query and set the run time limit
on the maximum shared memory segment size that can be created.
Shared memory segments up to 1Gb are now supported in the
kernel. This value defaults to SHMMAX
これらのsysctl変数の設定について与えられた提案は、PostgreSQLをさらに調整できるようにするために不可欠であり、多くの場合、必要なタスクには十分すぎるため、推奨することをお勧めします。 =)
これらのsysctlを設定したら、shared_buffers
をRAMの25%に設定し、effective_cache_size
をpostgresql.conf
で75%に設定すると、RAMを効果的に。
また、 PostgreSQLサーバーのチューニング のPostgreSQL Wikiエントリに従うか、適切なチューニングとケアの詳細について、GregSmithのPostgreSQL9.0 HighPerformanceブックを入手することをお勧めします。あなたのサーバー。 =)