Jump to content 日本-日本語
≫ お問い合わせ

HP OpenVMS: システム管理者マニュアル (下巻)

第4章 ファイル・システムのデータ・キャッシュの管理

≫ 

OpenVMSドキュメント・ライブラリ

目次
まえがき
第1章:システムパラメータの管理
第2章:ページファイル/スワップファイル/ダンプファイルの管理
第3章:性能の管理
第4章:ファイルシステムのデータキャッシュの管理
第5章:UETPによるシステムのテスト
第6章:システムに関する情報の入手
第7章:リソース使用状況の調査
第8章:クラスタの管理
第9章:ネットワーク
第10章:LANの管理
第11章:InfoServerの管理
第12章:LATの管理
第13章:特殊処理環境の管理
第14章:DECdtmサービスの管理
付録A:Files-11ディスク構造
付録B:時差係数表
付録C:タイムゾーン
用語集
索引
PDF
OpenVMS ホーム
ここから本文が始まります

この章では,XFC (Alpha および I64) および Virtual I/O Cache (VIOC) を管理する方法について説明します。 これらは,Files-11 ファイル・システムが ODS-2 および ODA-5 ボリュームのデータをキャッシュするときに使用します。

この章の内容

この章では,次の作業について説明します。

作業

参照箇所

クラスタ全体でのキャッシングの禁止

4.3 項 「クラスタ全体でのキャッシングの禁止」

キャッシングを禁止した状態でのボリュームのマウント

4.4 項 「キャッシングを禁止した状態でのボリュームのマウント」

Extended File Cache (Alpha および I64) の管理

4.5 項 「XFC の管理 (Alpha および I64)」

Virtual I/O Cache の管理

4.6 項 「Virtual I/O Cache の管理」

この章では,次の概念について説明します。

概念

参照箇所

キャッシング

4.1 項 「キャッシングについて」

ファイル・システムのデータ・キャッシュ

4.2 項 「ファイル・システムのデータ・キャッシュについて」

4.1 キャッシングについて

Files-11 ファイル・システムは,性能を向上させるために,キャッシング と呼ばれるテクニックを使用します。 Files-11 ファイルは,ディスクから最近読み込んだり,ディスクに書き込んだりしたデータのコピーを,キャッシュ と呼ばれる,メモリの領域に保持しています。

アプリケーションがデータを読み込むときに,ファイル・システムはデータがキャッシュにあるかどうかをチェックします。 データがキャッシュにない場合には,I/O を実行して,ディスクからデータを読み込みます。

キャッシングは,読み込み性能を向上させます。 メモリ (キャッシュ) からデータを読み込む方が,ディスクから読み込むよりもはるかに速いためです。

ハードウェア I/O サブシステムおよび OpenVMS には,キャッシングのいくつかのレベルがあります。 一般的に,キャッシングのレベルが多いほど,データにアクセスする応答時間が短くなります。

4.2 ファイル・システムのデータ・キャッシュについて

ODS-2 ボリュームと ODS-5 ボリュームの場合には,Files-11 ファイル・システムに複数のキャッシュがあります。 ファイル・ヘッダなどファイルのメタデータのためのメタデータ・キャッシュと,ファイル・データのためのデータ・キャッシュです。 Files-11 は,次に示す 2 つのシステム全体のデータ・キャッシュのうち,いずれか 1 つを使用できます。

ファイル・システムのデータ・キャッシュ

説明

Virtual I/O Cache (VIOC)

元からあるデータ・キャッシュで,VAX,Alpha,および I64 システムで使用できる。

Extended File Cache (XFC)

OpenVMS Alpha バージョン 7.3 以降と I64 システムで使用でき,OpenVMS Alpha および I64 システムでのみ使用できる。 VIOC よりも優れた性能とより多くの機能を提供する。 XFC は,OpenVMS Alpha バージョン 7.3 以降および I64 での省略時のキャッシュである。

この章では,データ・キャッシュを管理する方法について説明します。 メタデータ・キャッシュの管理方法については,『OpenVMS Performance Management』を参照してください。 RMS は,データ・キャッシングを実行できるローカル・バッファおよびグローバル・バッファを利用することに注意してください。 省略時の設定では,このキャッシングは許可されていません。 RMS のローカル・バッファおよびグローバル・バッファを操作すると,I/O 性能に影響を与える恐れがあるためです。 RMSの ローカル・バッファ およびグローバル・バッファの管理方法については,『Guide to OpenVMS File Applications』を参照してください。 また,変更ページ・リストは,キャッシュの一種であるため,ページはプロセスのワーキング・セットに戻され,ディスクには出力されないことにも注意してください。

XFC および VIOC はともに,OpenVMS Cluster 内で一貫性のあるデータを保守する仮想ブロック・キャッシュです。 これらは,データ・ファイルとイメージ・ファイルの両方をキャッシュします。 データ・キャッシュは,ライトスルー・キャッシュです。 アプリケーションがデータをファイルに書き込むと,データは直接ディスクに書き込まれます。 アプリケーションは,ディスク I/O が完了し,データがディスクに書き込まれるまで,待たなければなりません。

OpenVMS Cluster では,さまざまなノードがさまざまなデータ・キャッシュを使用することができます。 このため,混合アーキテクチャ・クラスタの場合には,XFC による利点が生じます。 OpenVMS Alpha ノードおよび I64 ノードは,XFC または VIOC を使用することができます。 OpenVMS VAX ノードは,4.5.6.2 項 「複合アーキテクチャ OpenVMS Cluster での XFC の使用」で説明しているように,VIOC だけを使用することができます。

XFC は,I/O 性能を向上させ,VIOC では 使用不可能な次のような機能を持っています。

  • 先読みキャッシング

  • キャッシュの自動サイズ変更

  • より大きい最大キャッシュ・サイズ

  • キャッシュできる閉じたファイル数 (無制限)

  • キャッシュできる I/O の最大サイズの制御

  • キャッシュ・メモリが静的か動的かの制御

4.3 クラスタ全体でのキャッシングの禁止

システム・スタートアップ時に,スタティック・システム・パラメータは,ファイル・システムがデータ・キャッシュを使用するかどうか,使用する場合には,どちらのデータ・キャッシュ (XFC または VIOC) を使用するかを制御します。 システム・パラメータは,次の表に示すようにオペレーティング・システムによって異なります。

オペレーティング・システム

システム・パラメータ

使用可能

使用不可

OpenVMS Alpha および I64

VCC_FLAGS

1 または 2 (省略時の設定)[14]

0

OpenVMS VAX

VBN_CACHE_S

1 (省略時の設定)

0

[14] 1 で VIOC を選択,2 (省略時の設定) で XFC を選択します。

OpenVMS Cluster では,ファイル・システムのデータ・キャッシングを 1 つのノードで使用不可に設定すると,クラスタ全体でも使用不可になります。 クラスタの他のノードは,そのノードがクラスタから離脱するか,VCC_FLAGS または VBN_CACHE_S を 0 以外の値に設定してリブートしないと,XFC または VIOC を使用できません。 DCL コマンド SHOW MEMORY を使用すると,キャッシングが使用可能になっているかどうかを確認することができます。

クラスタ全体でキャッシングを禁止するには,OpenVMS Cluster のいずれかのノードで次の手順を実行します。

  1. MODPARAMS.DAT を使用して,対応するシステム・パラメータ (VCC_FLAGS または VBN_CACHE_S) を 0 に設定する。

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

  3. 新しい値を有効にするには,システムをリブートしなければならない。

4.4 キャッシングを禁止した状態でのボリュームのマウント

ファイル・システムがデータをデータベース・ボリュームなど特定のボリュームにキャッシュするのを禁止するには,MOUNT /NOCACHE コマンドを使用して,キャッシングを禁止した状態でボリュームをマウントします。

OpenVMS Cluster で XFC を使用している場合には,ボリュームを /NOCACHE でマウントした方が,SET FILE /CACHING_ATTRIBUTE を使用し,ボリューム内のすべてのファイルのキャッシング属性を,キャッシングしないように設定するよりも簡単です (4.5.4 項 「ファイルのキャッシングの禁止」を参照してください)。 MOUNT /NOCACHE を使用すると,キャッシングのオーバヘッドが最少になります。 MOUNT/NOCACHE コマンドを使用すると,XQP キャッシングも使用不可能になることに注意してください。

この例では,ORACLE_VOL1 というラベルのデータベース・ボリュームを,キャッシングを禁止してマウントしています。

$ MOUNT DUA100: ORACLE_VOL1 /NOCACHE /SYSTEM

4.5 XFC の管理 (Alpha および I64)

この節では,OpenVMS Alpha および I64 システムでのみ使用可能な XFC を管理する方法について説明します。 次の作業について説明します。

作業

参照箇所

XFC と古いバージョンとの相互動作の保証

4.5.1 項 「XFC と古いバージョンとの相互動作の保証」

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

4.5.2 項 「キャッシュのサイズの管理」

最大キャッシュ I/O サイズの管理

4.5.3 項 「最大キャッシュ I/O サイズの管理」

ファイルのキャッシングの禁止

4.5.4 項 「ファイルのキャッシングの禁止」

先読みキャッシングの禁止

4.5.5 項 「先読みキャッシングの禁止」

性能の監視

4.5.6 項 「性能の監視」

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

4.5.6.2 項 「複合アーキテクチャ OpenVMS Cluster での XFC の使用」

4.5.1 XFC と古いバージョンとの相互動作の保証

以前のバージョンの OpenVMS Alpha または OpenVMS VAX を含む OpenVMS Cluster システムで,OpenVMS バージョン 7.3 以降または I64 システムの XFC を使用する場合は,以前のバージョンの OpenVMS を実行しているシステム上に,修正キットをインストールしなければなりません。

重要:

上記の修正キットは,XFC の前身である VIOC のキャッシュ・ロック・プロトコルの誤りを修正し,古いバージョンのキャッシュが新しい XFC と正しく相互動作するようにします。 修正キットのこの修正を盛り込まないと,システムやプロセスがハングアップすることがあります。

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

この節では,XFC の最小サイズおよび最大サイズを管理する方法について説明します。

XFC は,S2 空間の仮想メモリに保持され,I/O 負荷およびシステムで使用可能な共用メモリ量によって,自動的に縮小したり拡張したりします。 S2 空間は 64 ビットのアドレス空間であるため,必要な場合には,キャッシュを非常に大きいサイズまで拡張することができます。

I/O 負荷が増えるに連れてキャッシュも自動的に拡張しますが,最大サイズより大きくなることはありません。 アプリケーションでメモリが必要になると,キャッシュは自動的に縮小しますが,最小サイズより小さくなることはありません。

4.5.2.1 最小キャッシュ・サイズの制御

XFC の最小サイズは,予約メモリ・レジストリの VCC$MIN_CACHE_SIZE エントリの値によって制御します。 VCC$MIN_CACHE_SIZE では,システム・スタートアップ時に XFC に割り当てられたメモリの量を,M バイト (MB) 単位で指定します。 キャッシュは,このサイズを超えて縮小することはありません。 このメモリが解放されることは絶対にありません。

最小サイズのチェック

XFC の最小サイズをチェックするには,Sysman ユーティリティ・コマンド RESERVED_MEMORY /SHOW または DCL コマンド SHOW MEMORY /RESERVED を使用します。 次に例を示します。

$ SHOW MEMORY /RESERVED
              System Memory Resources on 11-MAY-2000 15:50:25.64

Memory Reservations (pages):       Group    Reserved      In Use       Type Allocated
   VCC$MIN_CACHE_SIZE               ---         1536        1536 
 Total (400.00 Mb reserved)                     1536        1536
最小サイズの設定

省略時の設定では,予約メモリ・レジストリには VCC$MIN_CACHE_SIZE のエントリが含まれていないため,システム・スタートアップ時に XFC に割り当てられるメモリはありません。 ただし,XFC は,システム全体のスループットを保守するために,ごくわずかの量のメモリを割り当てます。 このとき割り当てられるメモリの量は,使用しているコンピュータのサイズによって異なります。

最小サイズを設定するには,次の手順に従ってください。

  1. Sysman ユーティリティの RESERVED_MEMORY ADD コマンドを使用して,VCC$MIN_CACHE_SIZE のエントリを追加する。 最小サイズを 300 MB に設定する例を次に示す。

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> RESERVED_MEMORY ADD VCC$MIN_CACHE_SIZE /SIZE=300 /ALLOCATE -
    _SYSMAN> /NOGLOBAL_SECTION /NOZERO /NOPAGE_TABLE
    

    この例で示されている修飾子は,すべて使用しなければならない。 最大限の性能を実現するには,最小サイズを 4 MB の倍数に設定する。

    この作業を,予約メモリを異なった RAD に割り当てようとしている NUMA タイプのコンピュータで実行している場合に最小サイズを設定するには,(先の例のコマンドではなく) 次のコマンドを使用する。

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> RESERVED_MEMORY ADD VCC$MIN_CACHE_SIZE /SIZE=300 /ALLOCATE -
    _SYSMAN> /NOGLOBAL_SECTION /NOZERO /NOPAGE_TABLE/RAD=0
    SYSMAN> RESERVED_MEMORY EXTEND VCC$MIN_CACHE_SIZE /SIZE=500 /ALLOCATE -
    _SYSMAN> /NOGLOBAL_SECTION /NOZERO /NOPAGE_TABLE/RAD=1
    
  2. AUTOGEN を実行して,他のシステム・パラメータもこの新しい値を使用できるようにする。 これは必須の作業ではないが,実行しておくことが望ましい。

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

    スタートアップ中に,システムに指定された最小サイズを割り当てる十分なメモリがない場合には,XFC にメモリは割り当てられず,最小サイズは 0 MB に設定される。

最小サイズの変更

XFC の最小サイズを変更するには,次の手順に従ってください。

  1. Sysman ユーティリティの RESERVED_MEMORY MODIFY コマンドを使用して,VCC$MIN_CACHE_SIZE の既存のエントリを変更する。 最小サイズを 360 MB に変更する例を次に示す。

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> RESERVED_MEMORY MODIFY VCC$MIN_CACHE_SIZE /SIZE=360 /ALLOCATE -
    _SYSMAN> /NOGLOBAL_SECTION /NOZERO
    

    この例で示されている修飾子は,すべて使用しなければならない。 最大限の性能を実現するには,最小サイズを 4 MB の倍数に設定する。

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

  3. 新しい値を有効にするには,システムをリブートしなければならない。

    スタートアップ中に,システムに指定された最小サイズを割り当てる十分なメモリがない場合には,XFC にメモリは割り当てられず,最小サイズは 0 MB に設定される。

4.5.2.2 最大キャッシュ・サイズの制御

XFC の最大サイズを制御するには,ダイナミック・システム・パラメータ VCC_MAX_CACHE を使用します。 サイズを M バイト単位で指定します。

省略時の設定では,VCC_MAX_CACHE は –1 で,これは,システム・スタートアップ時に,XFC の最大サイズがシステム上の物理メモリの 50 パーセントに設定されることを意味します。 たとえば,システムの物理メモリが 2 GB である場合には,その最大サイズは 1 GB です。

VCC_MAX_CACHE によって指定される最大サイズには,XFC が OpenVMS ロック・マネージャを介して間接的に消費するメモリが含まれていないことに注意してください。

システム・スタートアップ時の VCC_MAX_CACHE の値によって,XFC の最大サイズが決まります。 この値を超えて最大サイズを増やすことはできません。

たとえば,システム・スタートアップ時に VCC_MAX_CACHE の値が 60 である場合には,最大サイズは最初 60 MB に設定されます。 その後,VCC_MAX_CACHE の値を 40 に設定すると,最大サイズは縮小し,40 MB になります。 XFC のサイズが 40 MB より大きい場合には,そのサイズは徐々に縮小し,40 MB になります。 次に VCC_MAX_CACHE の値を 80 に設定しても,最大サイズは,システム・スタートアップ時に設定された値である 60 MB までしか拡張しません。 システム・スタートアップ時に設定された値を超えて最大サイズを増やすことはできないためです。

VCC_MAX_CACHE が,予約メモリ・レジストリの VCC$MIN_CACHE_SIZE エントリの値によって指定された最小サイズより小さい場合には,システム・スタートアップ時に VCC_MAX_CACHE は無視され,XFC は,この最小サイズと同じ値に設定されます。 この場合には,XFC は固定サイズになり,縮小も拡大もできません。

アクティブなシステム上の XFC の最大サイズを,60 MB から 40 MB に減らす例を次に示します。

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> USE ACTIVE
SYSGEN> SET VCC_MAX_CACHE 40
SYSGEN> WRITE ACTIVE 
$ SET CACHE /RESET

現在のパラメータ・セットを変更することにより,リブートを行っても変更が有効なままとする例を次に示します。

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> USE CURRENT
SYSGEN> SET VCC_MAX_CACHE 40
SYSGEN> WRITE CURRENT 

この変更を永続的なものにするには,変更内容をMODPARAMS.DAT に入力しなければなりません。 この変更は,次回のリブート後に有効になります。

4.5.2.3 静的キャッシュ・サイズの許可

より大規模なコンピュータでは,XFC は変更ページ・リストの省略時のサイズによって,多少制限されることがあります。 通常,変更ページ・リストは,1 対 1 対応のデータ・キャッシュと考えられます。 XFC は多対 1 対応のキャッシュであるため,通常,1 つのキャッシュ・ページが多数のユーザによってアクセスされます。 大規模なメモリ・システムでは,AUTOGEN は通常,MPW_HILIMIT を非常に大きい値に設定します。 このため,メモリ・サブシステムが XFC に与えるための空きメモリが十分にないことも考えられます。

XFC の最小ページ数は,4.5.2.1 項 「最小キャッシュ・サイズの制御」の最小サイズの設定で指定されたとおりに強制的に設定することができます。 さらに,XFC 専用のメモリを永久的に割り当てて,動的な割り当てルーチンおよび割り当て解除ルーチンによってオーバヘッドが発生するのを防ぐこともできます (VIOC に対する操作と似ています)。 このようにするには,システム・パラメータ VCC_MAX_CACHE を,VCC$MIN_CACHE_SIZE によって指定されるメモリ予約と等しくなるように設定します。

たとえば,システムのメモリが 128 GB ある場合には,8 GB のメモリを XFC に占有させることによって,キャッシュのヒット率および全体の応答時間は,常に良くなります。 次に例を示します。

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> USE CURRENT
SYSGEN> SET VCC_MAX_CACHE 8000
SYSGEN> WRITE CURRENT
$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> RESERVED_MEMORY ADD VCC$MIN_CACHE_SIZE /SIZE=8000 /ALLOCATE -
_SYSMAN> /NOGLOBAL_SECTION /NOZERO /NOPAGE_TABLE/RAD=0

VCC_MAX_CACHE への変更を永続的なものにするには,変更内容を MODPARAMS.DAT に入力しなければなりません。 この変更は,次回のリブート後に有効になります。 AUTOGEN を実行して,他のシステム・パラメータが新しい値を許すか確認することをお勧めします。

4.5.3 最大キャッシュ I/O サイズの管理

ダイナミック・システム・パラメータ VCC_MAX_IO_SIZE は,XFC でキャッシュできる I/O の最大サイズを制御します。 このパラメータでは,サイズをブロック単位で指定します。 省略時の値は 127 です。

この例では,XFC でキャッシュできる I/O の最大サイズを,1000 ブロックに変更します。

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> USE ACTIVE
SYSGEN> SET VCC_MAX_IO_SIZE 1000
SYSGEN> WRITE ACTIVE

この一連のコマンドは,将来マウントされるボリュームだけでなく,現在ローカル・ノードにマウントされているボリュームへの I/O にも影響を与えます。 これらのコマンドを入力した後,XFC は 1000 ブロックより大きい I/O をキャッシュしなくなります。 SHOW MEMORY /CACHE /FULL コマンドを実行すると,効率的なパラメータの設定のためのガイドラインとなる,I/O サイズの棒グラフが表示されます。

4.5.4 ファイルのキャッシングの禁止

XFC が,データベース・ファイルなど特定のファイルをキャッシングするのを禁止するには,対象となるファイルのキャッシング属性を NO_CACHING に設定します。

ファイルのキャッシング属性とは,アプリケーションが使用するキャッシング・オプションを指定せずにファイルにアクセスした場合に,XFC が使用する省略時のキャッシング・オプションです。 このキャッシング・オプションは,WRITETHROUGH または NO_CACHING です。

ファイルをキャッシュするには,そのキャッシング属性を WRITETHROUGH (省略時の設定) に設定します。 ファイルをキャッシュしないようにするには,そのキャッシング属性を NO_CACHING に設定します。

属性

説明

SET FILE /CACHING_ATTRIBUTE=keyword[15]

ファイルまたはディレクトリにキャッシング属性を設定する。

DIRECTORY /CACHING_ATTRIBUTE または DIRECTORY /FULL

ファイルまたはディレクトリのキャッシング属性を表示する。

DIRECTORY /SELECT=CACHING_ATTRIBUTE=(keyword[,...]) [15]

特定のキャッシング属性を持つすべてのファイルおよびディレクトリを表示する。

[15] キーワードは WRITETHROUGH または NO_CACHING のいずれか。

XFC はディレクトリをキャッシュしません。 ディレクトリのキャッシング属性は,そのディレクトリ内に新たに作成されるファイルやサブディレクトリに,どのようにキャッシング属性が継承されるかのみを制御します。

  • 新しいディレクトリまたはファイルを作成すると,親ディレクトリからキャッシング属性を継承する。

  • 既存ファイルの新しいバージョンを作成すると,新しいバージョンは既存ファイルの最新バージョンからキャッシング属性を継承する。

  1. この例では,[SMITH.BORING] ディレクトリおよびその下位ディレクトリ内のファイルすべてに対して,キャッシング属性を NO_CACHING に設定する。

    最初の SET FILE コマンドは,ディレクトリ内にその後作成されたすべてのファイルおよびサブディレクトリがその属性を継承するように,ディレクトリに対して属性を設定する。 2 番目の SET FILE コマンドは,ディレクトリおよびその下位ディレクトリ内のすべての既存ファイルおよびディレクトリに対して属性を設定する。

    $ SET FILE DISK$USERS:[SMITH]BORING.DIR;1 /CACHING_ATTRIBUTE=NO_CACHING
    $ SET FILE DISK$USERS:[SMITH.BORING...]*.*;* /CACHING_ATTRIBUTE=NO_CACHING
    
  2. この例では,DIRECTORY コマンドの /CACHING_ATTRIBUTE 修飾子を使用して,MYFILE.TXT のキャッシング属性を表示する。

    $ DIRECTORY MYFILE.TXT /CACHING_ATTRIBUTE
    Directory DISK$USERS:[SMITH]
    
    MYFILE.TXT;1         Write-through
    
    Total of 1 file.
    
  3. この例では,DISK$USERS ボリュームにある,キャッシング属性が NO_CACHING であるすべてのファイルを表示する。

    $ DIRECTORY DISK$USERS:[000000...]*.* /SELECT=CACHING_ATTRIBUTE=NO_CACHING
    

4.5.5 先読みキャッシングの禁止

XFC は,データを順に読み込むアプリケーションの性能を向上させるために,先読みキャッシングと呼ばれるテクニックを使用します。 ファイルがサイズの等しい I/O に順に読み込まれると,これを検出し,現在の読み込みよりも先にデータをフェッチして,次の読み込み命令がキャッシュから満たされるようにします。

ローカル・ノードでの先読みキャッシングを禁止するには,ダイナミック・システム・パラメータ VCC_READAHEAD を 0 に設定します。 省略時の設定ではこのパラメータは 1 で,ローカル・ノードが先読みキャッシングを実行できます。

この例では,ローカル・ノードでの先読みキャッシングを禁止します。

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> USE ACTIVE
SYSGEN> SET VCC_READAHEAD 0
SYSGEN> WRITE ACTIVE

この一連のコマンドは,将来マウントされるボリュームだけでなく,現在ローカル・ノードにマウントされているボリュームへの I/O にも影響を与えます。 これらのコマンドを入力した後,先読みキャッシングはローカル・ノードでは使用されなくなります。

4.5.6 性能の監視

XFC は VIOC よりも多くの情報を提供します。 たとえば,システム全体,ボリューム全体,またはファイル単位でも情報を取得することができます。 ディスク I/O 応答時間も取得可能です。 SHOW MEMORY コマンドについては,『OpenVMS DCL ディクショナリ: N--Z』を参照してください。

4.5.6.1 システム全体の統計情報

SHOW MEMORY /CACHE を使用すると,XFC のシステム全体での性能を監視することができます。 次に例を示します。

$ SHOW MEMORY /CACHE

              System Memory Resources on 26-JAN-2001 15:58:18.71

Extended File Cache  (Time of last reset: 24-JAN-2001 15:03:39.05)
Allocated (Mbytes)       1   3000.00    Maximum size (Mbytes)  2    5120.00
Free (Mbytes)            3   2912.30    Minimum size (Mbytes)  4    3000.00
In use (Mbytes)          5     87.69    Percentage Read I/Os   6        98%
Read hit rate            7       92%    Write hit rate         8         0%
Read I/O count           9    178136    Write I/O count        10       1867
Read hit count           11   165470    Write hit count        12          0
Reads bypassing cache    13     2802    Writes bypassing cache 14         39
Files cached open        15      392    Files cached closed    16        384
Vols in Full XFC mode    17        0    Files in VIOC Compatible mode  18  4
Vols in No Caching mode  19        1    Vols in Perm. No Caching mode  20  0
1

Allocated

このキャッシュに現在割り当てられているメモリの量。
2

Maximum size

キャッシュが拡張できる最大サイズ。
3

Free

使用されていないキャッシュに現在割り当てられているメモリの量。
4

Minimum size

キャッシュが縮小できる最小サイズ。 これは,予約メモリ・レジストリの VCC$MIN_CACHE_SIZE エントリによって制御される。
5

In Use

使用されているキャッシュに現在割り当てられているメモリの量。 これは,Allocated の値と Free の値の差に相当する。
6

Percentage Read I/Os

読み込まれる I/O のパーセント。
7

Read hit rate

Read hit count フィールドを Read I/O count フィールドで除算して生じる数値 (率)。
8

Write hit rate

このフィールドは,将来使用するために予約されている。
9

Read I/O count

システム・スタートアップ以降,キャッシュによって確認された読み込み I/O の総数。
10

Write I/O count

システム・スタートアップ以降,キャッシュによって確認された書き込み I/O の総数。
11

Read hit count

システム・スタートアップ以降の読み込みヒットの総数。 読み込みヒットとは,データがキャッシュで見つかったため,ディスクへの物理 I/O が必要なかった読み込み I/O である。
12

Write hit count

このフィールドは,将来使用するために予約されている。
13

Reads bypassing cache

システム・スタートアップ以降,キャッシュによって確認されたが,キャッシュされなかった読み込み I/O の総数。 その理由としては,大きすぎる/NOCACHE を使用してマウントされたボリュームに対するものである,QIO 修飾子 IO$M_DATACHECK,IO$M_INHRETRY,または IO$M_NOVCACHE のいずれかを使用して指定されているなどが挙げられる。
14

Write bypassing cache

システム・スタートアップ以降,キャッシュによって確認されたが,キャッシュされなかった書き込み I/O の総数。 その理由としては,大きすぎる /NOCACHE を使用してマウントされたボリュームに対するものである,QIO 修飾子 IO$M_DATACHECK,IO$M_ERASE,IO$M_INHRETRY,または IO$M_NOVCACHE のいずれかを使用して指定されているなどが挙げられる。
15

Files cached open

現在キャッシュされているオープンされたファイルの数。
16

Files cached closed

有効なデータがまだキャッシュに入っている,閉じられたファイルの数。
17

Volumes in Full XFC mode

弊社で,将来使用するために予約済み。 0 になる。
18

Volumes in VIOC compatible mode

VCC キャッシング・プロトコルを使用している XFC によってキャッシングされるボリュームの数。 OpenVMS バージョン 7.3 以降,XFC が使用するのは VCC キャッシング・プロトコルだけである。
19

Volumes in No Caching mode

ローカル・ノードまたは OpenVMS Cluster の別のノードのいずれかでキャッシングが禁止されている場合に,この値は,ローカルノードに現在マウントされているボリュームの数になる。 それ以外の場合は 0。
20

Vols in Perm. No Caching mode

このフィールドは 0 でなければならない。 0 以外の数字である場合には,XFC がこのデバイスへの不正な書き込み操作を検出して,このデバイスへのキャッシングを禁止したことを意味する。

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

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

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

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

4.6 Virtual I/O Cache の管理

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

作業

参照箇所

Alpha システムまたは I64 システムでの VIOC の選択

4.6.2 項 「Alpha システムまたは I64 システムでの VIOC の選択」

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

4.6.3 項 「キャッシュのサイズの管理」

性能の監視

4.6.4 項 「VIOC 統計情報の表示」

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

4.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 遅延時間に依存するアプリケーションは,強制終了したり,予想できない結果を生じたりする恐れがあります。

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

  • ライトスルー―すべての書き込み I/O 要求は,ディスクと同様にキャッシュにも書き込まれる。

  • Least Recently Used (LRU)―キャッシュがいっぱいになると,最も以前に使用されたデータが置き換えられる。

  • キャッシュされたデータはファイルを閉じた後も保存―データは,ファイルを閉じた後もキャッシュ内に残る。

  • 読み込み要求や書き込み要求で割り当て―キャッシュ・ブロックは,読み込み要求や書き込み要求があると,割り当てられる。

4.6.2 Alpha システムまたは I64 システムでの VIOC の選択

何らかの理由により,Alpha システムまたは I64 システムで 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

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

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

OpenVMS Alpha システムまたは I64 システム

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

OpenVMS Alpha システムまたは I64 システムで 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. システムをリブートして,新しい値を有効にする。

4.6.4 VIOC 統計情報の表示

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

$ SHOW MEMORY/CACHE/FULL

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

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

1

Total Size

VIOC が現在管理しているシステム・メモリ・ページの総数を表示する。
2

Read I/O Count

最新のシステム・ブート以降,VIOC によって確認されている読み込み I/O の総数を表示する。
3

Free Pages

VIOC が管理しているページのうち,キャッシュ・データが含まれていないページの数を表示する。
4

Read Hit Count

最新のシステム・ブート以降,データが確認されていないため,物理 I/O を実行していない読み込み I/O の総数を表示する。
5

Pages in Use

VIOC が管理しているページのうち,有効なキャッシュ・データが含まれているページの数を表示する。
6

Read Hit Rate

読み込みヒット数と読み込み I/O 数の率を表示する。
7

Maximum Size

キャッシュが拡張できる最大サイズを表示する。
8

Write I/O Count

最新のシステム・ブート以降,VIOC によって確認されている書き込み I/O の総数を表示する。
9

Files Retained

有効なデータがキャッシュ内に残っているため,ファイルを閉じた後もファイル・システムの管理情報が残っている,閉じられたファイルの数を表示する。
10

I/O Bypassing

何らかの理由で,キャッシュによる要求/更新を満たそうとしなかった I/O の数を表示する。

4.6.5 VIOC の許可

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

パラメータ

許可

禁止

VCC_FLAGS (Alpha または I64)

1

0

VBN_CACHE_S (VAX)

1

0

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

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

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

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

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> SHOW VCC_FLAGS

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

4.6.7 メモリの割り当てと VIOC

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

  • 使用可能な未使用メモリの量が FREEGOAL の値の 2 倍あり,定期的にウェイクするプロセスで積極的なメモリ再生が許可されている場合

  • 使用可能な未使用メモリの量が FREEGOAL の値に等しく,長時間待機しているプロセスで積極的なメモリ再生が許可されている場合

  • 使用可能な未使用メモリの量が GROWLIM よりも多く,積極的なメモリ再生が許可されていない場合

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

  • 使用可能なシステム・ページ・テーブル・エントリ (SPTE) の数。 この数は,ブート時に決定された値によって計算される。

  • メモリ管理サブシステムの需要。 メモリ管理サブシステムはキャッシュに対する直接インタフェースを持っているため,必要に応じ,領域を戻すようにキャッシュに対して要求することができる。

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

4.6.8 VIOC サイズの調整

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

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

4.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 を離れると,キャッシュはフラッシュされます。 複数のノードで書き込みアクセスを持ち,複数のノードで開かれているファイルは,キャッシュされません。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 2009 Hewlett-Packard Development Company, L.P.