memlock
構文
[config] memlock=n
n は、ビット・フラグのセットです。既定では、n は 0 です (すべてのフラグが false に設定されています)。
説明
memlock は、InterSystems IRIS® Data Platform が共有メモリを割り当てる方法を制御するビット・フラグのセットです。InterSystems IRIS は、制御構造、グローバル・バッファ、ルーチン・バッファ、および共有メモリ・ヒープで使用する共有メモリ・セグメントを起動時に割り当てます。memlock パラメータを使用することで、その割り当て方法を詳細に制御できます。
既定 (n = 0) では、InterSystems IRIS は、ラージ・ページをサポートするプラットフォーム (Windows、Linux、および AIX) では、以下のようにラージ・ページから共有メモリを割り当てようとします。
-
可能な場合は、ラージ・ページを要求します。ラージ・ページは、オペレーティング・システム・レベルで物理メモリに自動でロックされます。
-
構成されているすべてのメモリ容量をラージ・ページで割り当てることができない場合、標準のページ (スモール・ページ) を要求します。標準のページは物理メモリにロックされません。
-
構成されているすべてのメモリ容量をスモール・ページで割り当てることができない場合は、割り当て量を 1/8 減らして、手順 1 から再実行します。
以下のビット・フラグは、下記のようにこのプロセスを変更します。
8 (LockTextSegment)
この memlock フラグは、テキスト・セグメント (InterSystems IRIS の実行可能コード・スペース) を物理メモリにロックするかどうかを指定します (一部の UNIX プラットフォームが対象)。既定では、ロックしません。
32 (LargePagesDisabled)
この memlock フラグは、ラージ/ヒュージ・ページをサポートするプラットフォームで、共有メモリに対してラージ/ヒュージ・ページを無効にするかどうかを指定します。既定では、ラージ/ヒュージ・ページは使用されません。
ラージ・ページをサポートするプラットフォームでこのフラグがオフになっている場合、InterSystems IRIS はラージ・ページでメモリを割り当てようと試み、要求されたサイズでラージ・ページを割り当てることができない場合は標準のページに切り替えます。専門的に言えば、これは、InterSystems IRIS がページ・サイズに対して中立的な処置をとり、ラージ・ページを要求するアクションを実行しないことを意味します。
64 (LargePagesRequired)
この memlock フラグは、ラージ/ヒュージ・ページをサポートするプラットフォーム (Windows、AIX、および Linux) で、共有メモリに対してラージ/ヒュージ・ページの使用を必須にするかどうかを指定します。既定では、必須ではありません。このフラグは、その他のプラットフォームの場合、または LargePageDisabled フラグによってラージ・ページが無効になっている場合は無視されます。
LargePagesRequired が True で (かつ無視されていない状態で)、ラージ/ヒュージ・ページでメモリを割り当てることができない場合、スモール・ページを代わりに使用せずに起動が中止されます。InterSystems IRIS はメモリ・サイズを少し減らして再試行しますが、このフラグが存在しないときほどは減らしません。
128 (BackoffDisabled)
この memlock は、メモリの割り当てに失敗した場合に、容量を減らして再試行するかどうかを指定します。既定では、再試行しません。このフラグが True の場合に、構成されたサイズでメモリを割り当てることができないときは、起動は中止されます。
このパラメータの変更
管理ポータルの [メモリ詳細] ページ ([システム管理] > [構成] > [追加設定] > [メモリ詳細]) で、[BackoffDisabled]、[LargePagesDisabled]、[LargePagesRequired]、[LockSharedMemory]、および [LockTextSegment] で True または False を選択します。
管理ポータルを使用する代わりに、Config.configOpens in a new tab クラス (クラス・リファレンスを参照) で、またはテキスト・エディタで CPF を編集することによって ("アクティブな CPF の編集" を参照)、memlock を変更できます。
この設定を編集した場合、変更内容を適用するには、InterSystems IRIS を再起動する必要があります。