設定パラメータとカーネルパラメータとの関係および計算式は、“PostgreSQL Documentation”の“Managing Kernel Resources”の表“System V IPC Parameters”を使用してください。
また、共有メモリの使用量は、“PostgreSQL Documentation”の“Managing Kernel Resources”を参照して計算してください。
インスタンスが複数ある場合は、すべてのインスタンスについてカーネルパラメータの評価を実施してください。例えば、システム全体の共有メモリセグメントの最大値(SHMMNI)であれば、すべてのインスタンスで求めた個数の合計値をカーネルパラメータに加算します。プロセス毎のセマフォの最大数(SEMMSL)であれば、すべてのインスタンスで求めたサイズのうちの最も大きい値と現在の値とを比較してから設定します。
注意
SHMMAXの計算誤りにより共有メモリが不足した場合には、shmgetシステムコールが“errno=22 (EINVAL)”で失敗したことを示すメッセージが出力されます。計算をやり直して、再設定してください。
System V IPC パラメータと各オペレーティングシステムのカーネルパラメータとの関係は以下のとおりです。
System | V IPC パラメータ | カーネルパラメータアクション |
---|---|---|
SHMMAX | kernel.shmmax | “現在値 < 計算値”ならば、計算値を設定 |
SHMMIN | 対応するパラメータなし |
|
SHMALL | kernel.shmall | “現在値 + 計算値”を指定 |
SHMSEG | 対応するパラメータなし |
|
SHMMNI | kernel.shmmni | “現在値 + 計算値”を指定 |
SEMMNI | kernel.semの第4パラメータ | “現在値 + 計算値”を指定 |
SEMMNS | kernel.semの第2パラメータ | “現在値 + 計算値”を指定 |
SEMMSL | kernel.semの第1パラメータ | “現在値 < 計算値”ならば、計算値を設定 |
SEMMAP | 対応するパラメータなし |
|
SEMVMX | 対応するパラメータなし |
|
備考1. kernel.shmallは、ページ数を指定します。
備考2. kernel.sem は、4個のパラメータを一度に指定します。このとき、第3パラメータには、設定前の値をそのまま指定してください。