設定パラメータとカーネルパラメータとの関係および計算式は、“PostgreSQL文書”の“カーネルリソースの管理”の表“System V IPCパラメータ”を使用してください。
また、共有メモリの使用量の計算には、“PostgreSQL文書”の“カーネルリソースの管理”の表“PostgreSQLの共有メモリ使用量”を参照してください。
インスタンスが複数ある場合は、すべてのインスタンスについてカーネルパラメータの評価を実施してください。例えば、システム全体の共有メモリセグメントの最大値(SHMMNI)であれば、すべてのインスタンスで求めた個数の合計値をカーネルパラメータに加算します。プロセス毎のセマフォの最大数(SEMMSL)であれば、すべてのインスタンスで求めたサイズのうちの最も大きい値と現在の値とを比較してから設定します。
注意
表“PostgreSQLの共有メモリ使用量”の“共有ディスクバッファ”の“shared_buffers”の単位は、ブロック数です。もし、postgresql.confにバイト数で指定しているならば、その値をもって、この計算式と置き換えてください。
SHMMAXの計算誤りにより共有メモリが不足した場合には、shmgetシステムコールが“errno=22 (EINVAL)”で失敗したことを示すメッセージが出力されます。計算をやり直して、再設定してください。
System V IPC パラメータと各オペレーティングシステムのカーネルパラメータとの関係は以下のとおりです。
System | V IPC パラメータ | カーネルパラメータアクション |
---|---|---|
SHMMAX | project.max-shm-memory | “現在値 + 計算値”を指定 |
SHMMIN | 対応するパラメータなし |
|
SHMALL | 対応するパラメータなし |
|
SHMSEG | 対応するパラメータなし |
|
SHMMNI | project.max-shm-ids | “現在値 + 計算値”を指定 |
SEMMNI | project.max-sem-ids | “現在値 + 計算値”を指定 |
SEMMNS | 対応するパラメータなし |
|
SEMMSL | process.max-sem-nsems | “現在値 < 計算値”ならば、計算値を設定 |
SEMMAP | 対応するパラメータなし |
|
SEMVMX | 対応するパラメータなし |
|
注意
インスタンス管理者となるOSのユーザのデフォルトプロジェクト(ログイン時に選択されるプロジェクト)に対して、上記のチューニングを行ってください。
non-global zoneでSymfoware Serverを使用する場合、かつ、当該のnon-global zoneに対してリソースの上限が指定されている場合には、その指定値も引き上げてください。