OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引


SHOW MEMORY コマンドについては,『Compaq OpenVMS DCL ディクショナリ: N--Z』を参照してください。

18.5.6 複合アーキテクチャ OpenVMS Cluster での XFC の使用

OpenVMS Cluster では,XFC を使用できるノードもあれば, VIOC を使用できるノードもあります。このため,混合アーキテクチャ・クラスタの場合には,XFC による利点が生じます。

VIOC を使用しているノード上にボリュームがマウントされている場合には, XFC を使用しているノードは,書き込みのために共有されているボリュームにあるどのファイルについても,キャッシュできません。 書き込みのために共有されている ファイルとは, OpenVMS Cluster 内の複数のノードによってアクセスされているファイルで,これらのノードのうち少なくとも 1 つが,書き込みアクセスのために開いているファイルのことです。

18.6 Virtual I/O Cache の管理

この節では,VIOC の管理方法について説明します。次の作業について説明します。

作業 参照箇所
Alpha システムでの VIOC の選択 第 18.6.2 項
キャッシュのサイズの管理 第 18.6.3 項
性能の監視 第 18.6.4 項

Virtual I/O Cache とは,クラスタ全体を対象にした,ライトスルーの,ファイル指向のディスク・キャッシュです。ディスク I/O 操作の数を低減し,性能を向上させることができます。 Virtual I/O Cache の目的は,I/O 応答時間を最小限のオーバヘッドに抑えることによって,システム・スループットを向上させることです。 Virtual I/O Cache は,システム管理およびアプリケーション・ソフトウェアからは透過的に動作し,仮想ディスク I/O の読み込み性能を非常に向上させながら,システムの信頼性を維持します。

18.6.1 Virtual I/O Cache のしくみについて

Virtual I/O Cache は,データ・ファイルおよびイメージ・ファイルを格納することができます。たとえば,ODS-2 ディスク・ファイルのデータ・ブロックは,最初にアクセスされるときに Virtual I/O Cache にコピーされます。その後,同じデータ・ブロックの読み込み要求は,この Virtula I/O Cache で満たされ (ヒット),本来必要な物理ディスク I/O の操作 (ミス) は不要になります。

システムの負荷によって,アプリケーションのスループットが向上したり,会話型応答が向上したり,I/O 負荷が低減したりします。

注意

単一の読み込みおよび書き込み要求を開始するアプリケーションの場合には,デーがキャッシュから再読み込みされることがまったくないため, Virtual I/O Cache を使用しても利点はありません。暗黙に指定されている I/O 遅延時間に依存するアプリケーションは,強制終了したり,予想できない結果を生じたりする恐れがあります。

キャッシュがデータを操作する方法について,次のいくつのポリシーが適用されます。

18.6.2 Alpha システムでの VIOC の選択

何らかの理由により, Alpha システムで XFC ではなく VIOC を使用する必要がある場合には,次の手順に従います。

  1. Sysman ユーティリティの RESERVED_MEMORY REMOVE コマンドを使用して,予約メモリ・レジストリから VCC$MIN_CACHE_SIZE のエントリを削除する。


    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> RESERVED_MEMORY REMOVE VCC$MIN_CACHE_SIZE /NOGLOBAL_SECTION
    


    これにより,ステップ 4 でシステムが VIOC を使用して再ブートすると, XFC にメモリは割り当てられない。

  2. VCC_FLAGS システム・パラメータを 1 に設定する。

  3. AUTOGEN を実行して,他のシステム・パラメータもこの新しい値を使用できるようにする。これは必須の作業ではないが,実行しておくことが望ましい。

  4. システムを再ブートする。VCC_FLAGS が 1 であるため,スタートアップ中に,XFC ではなく VIOC が自動的にロードされる。

ステップ 1 で予約メモリ・レジストリから VCC$MIN_CACHE_SIZE エントリを削除するのを忘れた場合には, XFC がロードされていないにもかかわらず,XFC にメモリが割り当てられます。このメモリは使用されません。このような状態になった場合には, Sysman ユーティリティの RESERVED_MEMORY FREE コマンドを使用して,このメモリを解放します。


$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> RESERVED_MEMORY FREE VCC$MIN_CACHE_SIZE /NOGLOBAL_SECTION

18.6.3 キャッシュのサイズの管理

VIOC のサイズを管理する方法は,使用しているシステムが OpenVMS Alpha か OpenVMS VAX かによって異なります。

OpenVMS Alpha

OpenVMS Alpha システムの場合には,VIOC のサイズは,システム・スタートアップ時に固定されます。キャッシュは縮小も拡張もできません。スタティック・システム・パラメータ VCC_MAXSIZE の値により,キャッシュのサイズがブロック単位で指定されます。省略時の値は,6400 ブロック (3.2 MB) です。

OpenVMS Alpha システムで VIOC のサイズを変更するには,次の手順に従います。

  1. VCC_MAXSIZE システム・パラメータを必要な値に設定する。

  2. AUTOGEN を実行して,他のシステム・パラメータもこの新しい値を使用できるようにする。これは必須の作業ではないが,実行しておくことが望ましい。

  3. システムを再ブートして,新しい値を有効にする。

OpenVMS VAX

OpenVMS VAX システムでは,スタティック・システム・パラメータ VCC_PTES を使用して,VIOC の最大サイズを指定することができます。このパラメータにより,サイズがページ単位で指定されます。省略時の値は 2,000,000,000 です。

使用しているシステムでの I/O 負荷および使用可能なメモリ量の残りに応じて, VIOC は自動的に縮小したり,拡張したりします。 I/O 負荷が増加すると,キャッシュも自動的に拡張しますが,最大サイズを超えることはありません。アプリケーションでメモリが必要な場合には,キャッシュは自動的に縮小します。

OpenVMS VAX システムで VIOC のサイズを変更するには,次の手順に従います。

  1. VCC_MAXSIZE システム・パラメータを必要な値に設定する。

  2. AUTOGEN を実行して,他のシステム・パラメータもこの新しい値を使用できるようにする。これは必須の作業ではないが,実行しておくことが望ましい。

  3. システムを再ブートして,新しい値を有効にする。

18.6.4 VIOC 統計情報の表示

DCL コマンド SHOW MEMORY/CACHE/FULL を使用すると, Virtual I/O Cache に関する統計情報を表示することができます。次に例を示します。


$ SHOW MEMORY/CACHE/FULL
            System Memory Resources on 10-OCT-1994 18:36:12.79
Virtual I/O Cache
Total Size (pages)   (1)   2422    Read IO Count          (6)     9577
Free Pages           (2)   18      Read Hit Count         (7)     5651
Pages in Use         (3)   2404    Read Hit Rate          (8)     59%
Maximum Size (SPTEs) (4)   11432   Write IO Count         (9)     2743
Files Retained       (5)   99      IO Bypassing the Cache (10)     88
 

注意

この例は, VAX システムでの SHOW MEMORY/CACHE/FULL コマンドの出力を示しています。 Alpha システムでは,SHOW MEMORY/CACHE/FULL コマンドの出力は,多少異なって表示されます。

(1) Total Size VIOC が現在管理しているシステム・メモリ・ページの総数を表示する。
(2) Free Pages VIOC が管理しているページのうち,キャッシュ・データが含まれていないページの数を表示する。
(3) Pages in Use VIOC が管理しているページのうち,有効なキャッシュ・データが含まれているページの数を表示する。
(4) Maximum Size キャッシュが拡張できる最大サイズを表示する。
(5) Files Retained 有効なデータがキャッシュ内に残っているため,ファイルを閉じた後もファイル・システムの管理情報が残っている,閉じられたファイルの数を表示する。
(6) Read I/O Count 最新のシステム・ブート以降,VIOC によって確認されている読み込み I/O の総数を表示する。
(7) Read Hit Count 最新のシステム・ブート以降,データが確認されていないため,物理 I/O を実行していない読み込み I/O の総数を表示する。
(8) Read Hit Rate 読み込みヒット数と読み込み I/O 数の率を表示する。
(9) Write I/O Count 最新のシステム・ブート以降,VIOC によって確認されている書き込み I/O の総数を表示する。
(10) I/O Bypassing 何らかの理由で,キャッシュによる要求/更新を満たそうとしなかった I/O の数を表示する。

18.6.5 VIOC の許可

省略時の設定では,Virtual I/O Cache によるキャッシングは許可されています。キャッシングを許可したり禁止するには,次のシステム・パラメータを使用します。MODPARAMS.DAT のパラメータの値を,次のように変更します。

パラメータ 許可 禁止
VCC_FLAGS (Alpha) 1 0
VBN_CACHE_S (VAX) 1 0

MODPARAMS.DAT を更新して,必要なパラメータの値を変更した後, AUTOGEN を実行して,キャッシングを許可または禁止する 1 つまたは複数のノードを再ブートしなければなりません。キャッシングは,システムの初期化中に自動的に許可または禁止されます。ユーザによる操作は不要です。

18.6.6 VIOC が許可されているかどうかの確認

SHOW MEMORY/CACHE を使用すると,実行中のシステムで VIOC キャッシングがオンであるかオフであるかが表示されます。 (SYSGEN を使用するよりもはるかに簡単です。)

SYSGEN を使用すると,システムがブートされる前にパラメータを調べることができます。たとえば,システム・パラメータ VCC_FLAGS (Alpha) または VBN_CACHE_S (VAX) をチェックすると,SYSGEN を使用することにより, Virtual I/O Cache によるキャッシングが許可されているかどうかを知ることができます。次に Alpha システムの例を示します。


$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> SHOW VCC_FLAGS

値が 0 の場合には,キャッシングが禁止されています。値が 1 の場合には,キャッシングが許可されています。

18.6.7 メモリの割り当てと VIOC

キャッシングに割り当てられるメモリは,未使用ページ・リストのサイズによって決まります。次の条件のうちいずれか 1 つがあてはまる場合には, Virtual I/O Cache のサイズは,拡張することがあります。

キャッシュ・サイズは,次のような条件によっても制限されます。

キャッシュからのメモリ再生はどのように行われるのでしょうか。スワッパは,第 1 レベルのトリミングを使用して,Virtual I/O Cache に割り当てられているメモリを再生することができます。さらに,ヒューリスティック・プリミティブがキャッシュを縮小し,メモリを小規模な増分単位で戻します。

18.6.8 VIOC サイズの調整

Virtual I/O Cache のサイズは,システム・パラメータ VCC_MAXSIZE によって決まります。このパラメータによって指定されるメモリの量がシステムの初期化時に静的に割り当てられ,Virtual I/O Cache によって引き続き所有されます。

キャッシュのサイズを増やしたり減らすには,VCC_MAXSIZE を変更し,システムを再ブートします。

18.6.9 VIOC および OpenVMS Cluster の構成

キャッシュは,単一ノード・システムから大規模な混合インターコネクト OpenVMS Cluster システムにいたるまで,サポートされているすべての構成で動作します。 Virtual I/O Cache は,中心点に相当します。つまり,キャッシュはそれぞれの OpenVMS Cluster メンバに対してローカルな存在です。どのような基本システムも, Virtual I/O Cache によるキャッシングをサポートすることができます。このキャッシング機能を使用するために, OpenVMS Cluster のライセンスは必要ではありません。

注意

OpenVMS Cluster のメンバのいずれかでキャッシングが禁止されていると,その OpenVMS Cluster では,キャッシングはまったく実行されません (キャッシングが許可されているノードでも同様です)。この状態は,キャッシングが禁止されている 1 つまたは複数のノードでキャッシングが許可されるか,またはそのようなノードがクラスタから削除されるまで続きます。

ロック・マネージャは,キャッシュを密接に管理します。1 つのノードが OpenVMS Cluster を離れると,キャッシュはフラッシュされます。複数のノードで書き込みアクセスを持ち,複数のノードで開かれているファイルは,キャッシュされません。


前へ 次へ 目次 索引