System V 共有メモリーでは、プロセスによるセグメントの作成が可能です。連携するプロセスがそのメモリーセグメントに接続し (セグメントに対するアクセス権が必要)、セグメントに含まれるデータにアクセスできます。この機能はロード可能モジュールとして実装されます。/etc/system ファイルのエントリは含んでいなければなりません、shmsys: 接頭辞。Solaris 7 リリースから、keyserv デーモンは System V 共有メモリーを使用するようになりました。
DBMS ベンダーは、パフォーマンスを高めるために、ISM (intimate shared memory) と呼ばれる特殊な共有メモリーを使用しています。共有メモリーセグメントを ISM セグメントにすると、そのセグメントのメモリーがロックされます。これにより、必要な入出力経路が短縮され、メモリーの使用効率が向上します。これは、セグメントを記述するカーネルリソースが、セグメントに ISM モードで接続するすべてのプロセスによって共有されるからです。
このモジュールは最初の参照で動的にロードされます。サブシステムに提供されるパラメータはこのときに検査されます。
この機能は POSIX 1003.1b 共有メモリー機能とは異なります。
作成できる System V 共有メモリーセグメントの最大サイズ。このパラメータは、システムが要求されたメモリーセグメントを作成するために必要な物理リソースが実際にあるか調べる前に検査される上限値です。
符号なし long
1,048,576
32 ビットシステムでは 0 から MAXINT、64 ビットシステムでは MAXINT64
バイト
いいえ。shminfo 構造体の shmmax フィールドにロードされます。
なし
デフォルト値では足りない場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。ただし、共有メモリーセグメントのサイズを制限する必要がある場合以外は、このパラメータに利用できる最大値を設定しても副次的影響はありません。
変更の可能性あり
符号なし long
1
0 から物理メモリーの総量
バイト
できるだけ変更しないでください。この値が大きすぎると、powerd などのシステムプログラムが異常終了することがあります。shminfo_shmmin より小さいセグメントを作成するプログラムには、そのセグメントを作成しようとした時に EINVAL エラーが返され、通常、そのプログラムは終了します。
変更の可能性あり
詳細は、shmsys:shminfo_shmmin を参照してください。
符号付き整数
100
0 から MAXINT
いいえ。shminfo 構造体の shmmni フィールドにロードされます。
System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。
システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
変更の可能性あり
符号付き short
6
0 から 32,767
いいえ。shminfo 構造体の shmseg フィールドにロードされます。
System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。
システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。
変更の可能性あり
詳細は、shmsys:shminfo_shmsegを参照してください。
符号なし long
最初の ISM セグメントが作成されるときに使用可能なシステムメモリーの 5%
物理メモリーの 0% から 50%
ページ
はい
なし。値が小さすぎると、メモリーが ISM セグメントに消費される時に、システムがハングしたりパフォーマンスが大幅に低下することがあります。
大量のメモリーがあるデータベースシステムで ISM を使用する場合、このパラメータを下げると効果があることがあります。ISM セグメントが使用されない場合には、このパラメータの効果はありません。大量のメモリーを備えたマシンでは、ほとんどの場合、最大値 128M バイト (0x4000) で十分です。
変更の可能性あり
詳細は、segspt_minfreeを参照してください。