Solaris カーネルのチューンアップ・リファレンスマニュアル

System V 共有メモリー

System V 共有メモリーでは、プロセスによるセグメントの作成が可能です。連携するプロセスがそのメモリーセグメントに接続し (セグメントに対するアクセス権が必要)、セグメントに含まれるデータにアクセスできます。この機能はロード可能モジュールとして実装されます。/etc/system ファイルのエントリは含んでいなければなりません、shmsys: 接頭辞。Solaris 7 リリースから、keyserv デーモンは System V 共有メモリーを使用するようになりました。

DBMS ベンダーは、パフォーマンスを高めるために、ISM (intimate shared memory) と呼ばれる特殊な共有メモリーを使用しています。共有メモリーセグメントを ISM セグメントにすると、そのセグメントのメモリーがロックされます。これにより、必要な入出力経路が短縮され、メモリーの使用効率が向上します。これは、セグメントを記述するカーネルリソースが、セグメントに ISM モードで接続するすべてのプロセスによって共有されるからです。

このモジュールは最初の参照で動的にロードされます。サブシステムに提供されるパラメータはこのときに検査されます。

この機能は POSIX 1003.1b 共有メモリー機能とは異なります。

shmsys:shminfo_shmmax

説明

作成できる System V 共有メモリーセグメントの最大サイズ。このパラメータは、システムが要求されたメモリーセグメントを作成するために必要な物理リソースが実際にあるか調べる前に検査される上限値です。

データ型

符号なし long

デフォルト

1,048,576

範囲

32 ビットシステムでは 0 から MAXINT、64 ビットシステムでは MAXINT64

単位

バイト

動的か

いいえ。shminfo 構造体の shmmax フィールドにロードされます。

検査

なし

どのような場合に変更するか

デフォルト値では足りない場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。ただし、共有メモリーセグメントのサイズを制限する必要がある場合以外は、このパラメータに利用できる最大値を設定しても副次的影響はありません。

コミットレベル

変更の可能性あり

shmsys:shminfo_shmmin

説明

作成できる System V 共有メモリーセグメントの最小サイズ

データ型

符号なし long

デフォルト

1

範囲

0 から物理メモリーの総量

単位

バイト

どのような場合に変更するか

できるだけ変更しないでください。この値が大きすぎると、powerd などのシステムプログラムが異常終了することがあります。shminfo_shmmin より小さいセグメントを作成するプログラムには、そのセグメントを作成しようとした時に EINVAL エラーが返され、通常、そのプログラムは終了します。

コミットレベル

変更の可能性あり

前のリリースからの変更

詳細は、shmsys:shminfo_shmmin を参照してください。

shmsys:shminfo_shmmni

説明

システム全体で作成できる共有メモリーセグメントの最大数

データ型

符号付き整数

デフォルト

100

範囲

0 から MAXINT

動的か

いいえ。shminfo 構造体の shmmni フィールドにロードされます。

検査

System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。

どのような場合に変更するか

システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

変更の可能性あり

shmsys:shminfo_shmseg

説明

1 つのプロセスで接続できる共有メモリーセグメントの制限数。

データ型

符号付き short

デフォルト

6

範囲

0 から 32,767

動的か

いいえ。shminfo 構造体の shmseg フィールドにロードされます。

検査

System V 共有メモリーに関係するデータ構造体が最大数存在する場合に消費され得る空間量を、モジュールをロードしたときに使用可能なカーネルメモリーの 25% と比較します。消費されるメモリーが大きすぎると、モジュールをロードする試みは失敗します。

どのような場合に変更するか

システムの限度が小さすぎる場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。

コミットレベル

変更の可能性あり

前のリリースからの変更

詳細は、shmsys:shminfo_shmsegを参照してください。

segspt_minfree

説明

ISM 共有メモリー用に割り当てることができないシステムメモリーのページ数

データ型

符号なし long

デフォルト

最初の ISM セグメントが作成されるときに使用可能なシステムメモリーの 5%

範囲

物理メモリーの 0% から 50%

単位

ページ

動的か

はい

検査

なし。値が小さすぎると、メモリーが ISM セグメントに消費される時に、システムがハングしたりパフォーマンスが大幅に低下することがあります。

どのような場合に変更するか

大量のメモリーがあるデータベースシステムで ISM を使用する場合、このパラメータを下げると効果があることがあります。ISM セグメントが使用されない場合には、このパラメータの効果はありません。大量のメモリーを備えたマシンでは、ほとんどの場合、最大値 128M バイト (0x4000) で十分です。

コミットレベル

変更の可能性あり

前のリリースからの変更

詳細は、segspt_minfreeを参照してください。