一部のKernelパラメータはInterSystems製品を稼働するためには、不適切な値となっているため、調整する必要があります。
共有メモリにあわせたshmmaxの値は以下の a)、b)、c)、d)の合計値になります。
a) データベースバッファ(Mbytes)
b) ルーチンバッファ(Mbytes)
c) 一般メモリヒープ(Kbytes)
d) バッファ等の管理ための領域
18 (Mbytes) + (データベースバッファ(Mbytes) +ルーチンバッファ(Mbytes)) x 0.05 (Mbytes)
通常既定値で問題ありません。
プロセステーブルのエントリ数と同数のセマフォを使用します。
プロセステーブルのエントリ数は必要に応じて自動拡張し、初期値の128から32個単位で自動拡張しますが、
その際にセマフォも同じ数使用します。
よって、セマフォのKernelパラメータの設定値の算出のためには、最大プロセス数(デーモンプロセスも含む)
を見積もる必要があります。
semmns = 最大プロセス数(32の倍数) + その他InterSystems製品以外で使用するセマフォ数
semmni × semmsl > semmnsになるようsemmniとsemmslの値を設定します。
通常semmslは既定値を使用し semmniの値を変更します。
※semmni:システム全体のセマフォ集合の最大数。方針依存 。
(Linuxではこの制限値は /proc/sys/kernel/sem の第4フィールドに対応し、読み出しも変更もできる。)
※semmsl:semidあたりのセマフォの最大数。 実装依存。
(Linuxではこの制限値は /proc/sys/kernel/sem の第1フィールドに対応し、読み出しも変更もできる。)
※semmns:システム全体のセマフォの最大数。方針依存。
(Linuxではこの制限値は /proc/sys/kernel/sem の第2フィールドに対応し、読み出しも変更もできる。)
semmsl × semmniより大きな値は意味を持たない。