OpenVMS Alpha
オペレーティング・システム
64 ビット・アドレッシングおよび
VLM 機能説明書


前へ 次へ 目次 索引


4.6 予約メモリ・レジストリ

予約メモリ・レジストリは,SYSMAN ユーティリティの中のそのインタフェースを介して,OpenVMS Alpha システムに,メモリ常駐セクションおよび他の特権アプリケーションで使用するためのメモリを大量に設定できます。また,予約メモリ・レジストリを使用すると,割り当て済みの予約メモリを考慮しながら,AUTOGEN ユーティリティを介して OpenVMS システムを適切にチューニングできます。

予約メモリ・レジストリによって,次の操作を実行できます。

予約メモリ・レジストリは,システムの起動時に割り当て済みのページをゼロ化することを指定できる機能を備えています。このオプションは,メモリ常駐クローバル・デマンド・ゼロ・セクションを作成するのに必要な時間を短縮します。

予約メモリ・レジストリは,予約メモリの内,メモリ常駐グローバル・セクションにマップするのに必要なページ・テーブルのサイズを指定するオプションも備えています。このオプションが指定され,予約メモリがメモリ常駐グローバル・セクションに使用される場合,共用ページ・テーブルと共にメモリ常駐グローバル・セクションが作成されます。

4.6.1 予約メモリ・レジストリの使用

OpenVMS は,メモリ常駐グローバル・デマンド・ゼロ・セクションでの使用を目的として,非流動メモリを予約するメカニズムを備えています。予約されたメモリは,システムの非流動メモリ・サイズから単純に差し引かれたものであるか,または連続的にアラインされた物理ページとしてあらかじめ割り当てられています。

予約メモリ・レジストリを使用すると,システムの流動ページ・カウントの計算にメモリ常駐セクション・ページを含めずに,AUTOGEN でシステムを適切にチューニングできます。AUTOGEN は,システムの流動ページ・カウントに基づいて,システム・ページファイル,プロセス数,およびワーキング・セット最大サイズを算出します。他の目的のために永久的に予約されている物理メモリを考慮していない流動ページ・カウントに基づいて AUTOGEN がパラメータを調整すると,性能に関する重大な問題がシステムで発生します。

また,予約メモリ・レジストリで allocate オプションを指定することにより,連続的にアラインされたメモリがメモリ常駐セクションで使用されます。

注意

ここでは,予約メモリ・レジストリをグローバル・セクションに対して使用する方法について説明していますが,この機能は他の特権アプリケーションに対して使用することもできます。

4.6.1.1 予約メモリ・レジストリ・データ・ファイル

予約されている非流動メモリを使用するものは,メモリの特徴を,システムの初期化 (起動) の際に読み込まれるデータ・ファイルに入力します。データ・ファイルを操作するメカニズムは,SYS$LOADABLE_IMAGES:VMS$SYSTEM_IMAGES.DATA と同様です (インストール固有のエグゼクティブ・ロード・イメージを指定します)。

このファイルの名前は次のとおりです。


SYS$SYSTEM:VMS$RESERVED_MEMORY.DATA 

このファイルは,(エグゼクティブ・ロード・イメージ・データ・ファイルと同様に) SYSMAN ユーティリティで管理します。

4.6.1.2 AUTOGEN

予約メモリ・レジストリ・ファイル VMS$RESERVED_MEMORY.DATA は,AUTOGEN フィードバック・メカニズムによって読み込まれ,システムの流動ページ・カウントの設定に反映されます。AUTOGEN は,システムの流動ページ・カウントに基づいて,システム・ページファイル,プロセス数,およびワーキング・セット最大サイズを算出します。

4.6.1.3 予約メモリ・レジストリへのエントリの追加

データ・ファイルにエントリを追加するには,SYSMAN ユーティリティを使用します。SYSMAN コマンドは次の形式で指定します。


SYSMAN RESERVED_MEMORY ADD gs_name - 
                      /GROUP = n - 
                      /SIZE = {size of reserved memory, unit: MB} - 
                      /[NO]ALLOCATE - 
                      /[NO]ZERO - 
                      /[NO]PAGE_TABLES 

4.6.2 予約メモリ・レジストリからのエントリの削除

次の SYSMAN コマンドを実行することによって,予約メモリ・エントリを削除できます。


SYSMAN RESERVED_MEMORY REMOVE gs_name /GROUP = n 

gs_nameには,予約メモリ・レジストリから削除するエントリに関連付けられているメモリ常駐セクションの名前を指定します。名前は必ず指定しなければなりません。

/GROUP 修飾子に指定する値 n は,削除するメモリ常駐セクションに関連付けられているUIC グループ番号(8 進数)です。メモリ常駐グローバル・セクションがグループ・グローバル・セクションの場合は,/GROUP 修飾子を指定しなければなりません。メモリ常駐グローバル・セクションがシステム・グローバル・セクションの場合は,/GROUP 修飾子を指定しないでください。

ページ・テーブルが名前付きメモリ常駐グローバル・セクション用に予約されている場合,そのための追加予約メモリも削除されます。

REMOVE コマンドは予約メモリ・レジストリ・データ・ファイルからエントリを削除するだけで,実行中のシステム内のメモリには影響しません。

4.6.2.1 予約メモリの割り当て

システムを初期化する時に,VMS$RESERVED_MEMORY.DATA データ・ファイルが読み込まれます。

データ・ファイル内の各エントリについて,RESERVED_MEMORY ADD コマンドの /SIZE 修飾子で指定したメガバイト数が,このメモリ常駐グローバル・セクションに対するシステムの流動ページ・カウントから差し引かれます。/PAGE_TABLES が指定されている場合,メモリ常駐グローバル・セクションをマッピングする共用ページ・テーブルが必要とするメモリ量も,システムの流動ページ・カウントから差し引かれます。

RESERVED_MEMORY ADD コマンドに /ALLOCATE が指定された場合,物理ページの連続的なまとまりが割り当てられ,メモリ常駐グローバル・セクション用に確保されます。/PAGE_TABLES が指定された場合,物理ページの連続的なまとまりがさらに割り当てられ,共用ページ・テーブル用に確保されます。ページは,与えられたサイズのまとまりに対して,最大の粒度ヒント係数を使用するのに適した物理アライメントを持ちます。/ZERO が指定された場合,システムの初期化の際に,またはシステムがアイドル状態のとき,ページがゼロ化されます。/ZERO が指定されていない場合,または /NOZERO が指定された場合は,メモリ常駐グローバル・セクションが作成されるときにページがゼロ化されます。

システム・パラメータ STARTUP_P1 が MIN に設定されると,予約メモリ・レジストリ・エントリ内のエントリは無視され,メモリは予約されません。

システムの初期化の際に行われる予約メモリ・レジストリ・データ・ファイルの処理で,システム流動ページの予約や,連続的にアラインされた物理ページの割り当てに関してエラーが発生すると,コンソールにエラー・メッセージが出力され,システムは起動を続けます。

4.6.2.2 予約メモリの解放

実行中のシステムの中で次の SYSMAN コマンドを実行することによって,予約メモリを解放できます。


SYSMAN RESERVED_MEMORY FREE gs_name /GROUP = n 

gs_nameには,予約メモリ・レジストリから解放するエントリに関連付けられているメモリ常駐セクションの名前を指定します。名前は必ず指定しなければなりません。

/GROUP 修飾子に指定する値 n は,解放するメモリ常駐セクションに関連付けられているUIC グループ番号(8 進数)です。メモリ常駐グローバル・セクションがグループ・グローバル・セクションの場合は,/GROUP 修飾子を指定しなければなりません。メモリ常駐グローバル・セクションがシステム・グローバル・セクションの場合は,/GROUP 修飾子を指定しないでください。

システムの初期化の際に,このグローバル・セクションに対して連続的にアラインされた物理ページがあらかじめ割り当てられなかった場合,システムの流動ページ・カウントに予約メモリが単純に追加されます。そうでなければ,システムの未使用またはゼロ化ページ・リスト上で,物理ページの割り当てが解除されます。システムの流動ページ・カウントは,割り当てを解除されたページを含むように調整されます。

名前付きのメモリ常駐グローバル・セクションに対してページ・テーブルも予約されている場合,共用ページ・テーブル用の予約メモリも解放されます。

名前付きのメモリ常駐グローバル・セクションによって予約メモリが使用されている場合,現在使用されていない予約メモリが解放されます。

RESERVED_MEMORY FREE コマンドは,予約メモリ・レジストリ・データ・ファイルの内容には影響しません。実行中のシステム内のメモリにだけ影響します。

4.6.2.3 予約メモリの表示

予約メモリ情報は,予約メモリ・レジストリ・データ・ファイルと,データ・ファイル内のエントリに基づいてシステムの初期化の際に作成される,実行中のシステム内の予約メモリ・レジストリの 2 ヶ所に保存されています。

予約メモリについての情報がどこから発生するかによって,表示メカニズムがそれぞれ異なります。

実行中のシステムの中で予約メモリ・レジストリを表示するには,SYSMAN,DCL SHOW MEMORY コマンド,および SDA という 3 種類のメカニズムがあります。

4.6.2.4 予約メモリの使用

システム・サービス SYS$CREATE_GDZRO および SYS$CRMPSC_GDZRO_64 は,内部カーネル・モードの OpenVMS Alpha ルーチンを呼び出し,予約メモリ・レジストリに登録されている予約メモリを使用します。

グローバル・セクションは,予約メモリ・レジストリに登録されている必要はありません。グローバル・セクション名が予約メモリ・レジストリに登録されている場合,グローバル・セクションのサイズが,予約メモリのサイズに正確に一致している必要はありません。グローバル・セクションが登録されていない場合,またはグローバル・セクションが予約メモリ・レジストリに登録されるときに /NOALLOCATE が指定された場合,メモリ常駐グローバル DZRO セクションに対して fault オプションが使用されます。サイズが予約メモリのサイズよりも大きい場合,メモリ常駐グローバル DZRO セクションを作成するシステム・サービス呼び出しは,システム内に十分な追加流動ページがない限り失敗します。

グローバル・セクションが予約メモリ・レジストリに登録されるときに /ALLOCATE が指定された場合,メモリ常駐グローバル DZRO セクションに対してallocateオプションが使用されます。グローバル・セクションのサイズは,予約されている割り当て済みのメモリのサイズ以下でなければなりません。そうでないと,システム・サービス呼び出しからエラー SS$_MRES_PFNSMALL が返されます。

4.6.2.5 予約メモリの復帰

メモリ常駐グローバル・セクションが削除された時,このグローバル・セクションに対して,連続的でアラインされた物理ページがあらかじめ割り当てられていなかった場合,このグローバル・セクションに使用されていた物理ページの割り当てが解除され,空きページ・リストに返されます。システムの流動ページ・カウントは,このグローバル・セクションについて,予約メモリ・レジストリに予約されていないページ分だけ調整されます。

メモリ常駐グローバル・セクションが削除された時,このグローバル・セクションに対して,連続的でアラインされた物理ページがあらかじめ割り当てられていた場合,このグローバル・セクション用に使用されていた物理ページが予約メモリ・レジストリに返されます。物理ページの割り当てが解除されて空きページ・リストに返されることはなく,引き続き予約されます。システムの流動ページ・カウントも調整されません。

予約メモリは,SYSMAN ユーティリティの RESERVED_MEMORY FREE コマンドでのみ実行中のシステムに解放されます。

注意

パーマネント・グローバル・セクションは,SYS$DGBLSC の呼び出しと,グローバル・セクションへの最終リファレンスで削除されます。非パーマネント・グローバル・セクションは,グローバル・セクションへの最終リファレンスで単純に削除されます。


前へ 次へ 目次 索引