前へ | 次へ | 目次 | 索引 |
XFC の最大サイズを制御するには,ダイナミック・システム・パラメータ VCC_MAX_CACHE を使用します。サイズをメガバイト単位で指定します。
省略時の設定では,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 の最大サイズを 50 MB に変更する例を次に示します。
$ RUN SYS$SYSTEM:SYSGEN SYSGEN> USE CURRENT SYSGEN> SET VCC_MAX_CACHE 50 SYSGEN> WRITE ACTIVE |
より大規模なコンピュータでは, XFC は変更ページ・リストの省略時のサイズによって,多少制限されることがあります。通常,変更ページ・リストは, 1 対 1 対応のデータ・キャッシュと考えられます。 XFC は多対 1 対応のキャッシュであるため,通常, 1 つのキャッシュ・ページが多数のユーザによってアクセスされます。大規模なメモリ・システムでは,AUTOGEN は通常, MPW_HILIMIT を非常に大きい値に設定します。このため,メモリ・サブシステムが XFC に与えるための空きメモリが十分にないことも考えられます。
XFC の最小ページ数は, 最小サイズの設定 で指定されたとおりに強制的に設定することができます。さらに,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 ACTIVE $ 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_IO_SIZE は, XFC でキャッシュできる I/O の最大サイズを制御します。このパラメータでは,サイズをブロック単位で指定します。省略時の値は 128 です。
この例では, XFC でキャッシュできる I/O の最大サイズを,1000 ブロックに変更します。
$ RUN SYS$SYSTEM:SYSGEN SYSGEN> USE CURRENT SYSGEN> SET VCC_MAX_IO_SIZE 1000 SYSGEN> WRITE ACTIVE |
この一連のコマンドは,将来マウントされるボリュームだけでなく,現在ローカル・ノードにマウントされているボリュームへの I/O にも影響を与えます。これらのコマンドを入力した後,XFC は 1000 ブロックより大きい I/O をキャッシュしなくなります。 SHOW MEMORY /CACHE /FULL コマンドを実行すると,効率的なパラメータの設定のためのガイドラインとなる,I/O サイズの棒グラフが表示されます。
18.5.3 ファイルのキャッシングの禁止
XFC が,データベース・ファイルなど特定のファイルをキャッシングするのを禁止するには,対象となるファイルのキャッシング属性を NO_CACHING に設定します。
ファイルのキャッシング属性 とは,アプリケーションが使用するキャッシング・オプションを指定せずにファイルにアクセスした場合に,XFC が使用する省略時のキャッシング・オプションです。このキャッシング・オプションは, WRITETHROUGH または NO_CACHING です。
ファイルをキャッシュするには,そのキャッシング属性を WRITETHROUGH (省略時の設定) に設定します。ファイルをキャッシュしないようにするには,そのキャッシング属性を NO_CACHING に設定します。
属性 | 説明 |
---|---|
SET FILE /CACHING_ATTRIBUTE=keyword + | ファイルまたはディレクトリにキャッシング属性を設定する。 |
DIRECTORY /CACHING_ATTRIBUTE または
DIRECTORY /FULL |
ファイルまたはディレクトリのキャッシング属性を表示する。 |
DIRECTORY /SELECT=CACHING_ATTRIBUTE=(keyword[,...]) + | 特定のキャッシング属性を持つすべてのファイルおよびディレクトリを表示する。 |
XFC はディレクトリをキャッシュしません。ディレクトリのキャッシング属性は,そのディレクトリ内に新たに作成されるファイルやサブディレクトリに,どのようにキャッシング属性が継承されるかのみを制御します。
$ SET FILE DISK$USERS:[SMITH]BORING.DIR;1 /CACHING_ATTRIBUTE=NO_CACHING $ SET FILE DISK$USERS:[SMITH.BORING...]*.*;* /CACHING_ATTRIBUTE=NO_CACHING |
$ DIRECTORY MYFILE.TXT /CACHING_ATTRIBUTE Directory DISK$USERS:[SMITH] MYFILE.TXT;1 Write-through Total of 1 file. |
$ DIRECTORY DISK$USERS:[000000...]*.* /SELECT=CACHING_ATTRIBUTE=NO_CACHING |
XFC は,データを順に読み込むアプリケーションの性能を向上させるために, 先読みキャッシング と呼ばれるテクニックを使用します。ファイルがサイズの等しい I/O に順に読み込まれると,これを検出し,現在の読み込みよりも先にデータをフェッチして,次の読み込み命令がキャッシュから満たされるようにします。
ローカル・ノードでの先読みキャッシングを禁止するには,ダイナミック・システム・パラメータ VCC_READAHEAD を 0 に設定します。省略時の設定ではこのパラメータは 1 で,ローカル・ノードが先読みキャッシングを実行できます。
この例では,ローカル・ノードでの先読みキャッシングを禁止します。
$ RUN SYS$SYSTEM:SYSGEN SYSGEN> USE CURRENT SYSGEN> SET VCC_READAHEAD 0 SYSGEN> WRITE ACTIVE |
この一連のコマンドは,将来マウントされるボリュームだけでなく,現在ローカル・ノードにマウントされているボリュームへの I/O にも影響を与えます。これらのコマンドを入力した後,先読みキャッシングはローカル・ノードでは使用されなくなります。
18.5.5 性能の監視
XFC は VIOC よりも多くの情報を提供します。たとえば,システム全体,ボリューム全体,またはファイル単位でも情報を取得することができます。ディスク I/O 応答時間も取得可能です。 SHOW MEMORY コマンドについては,『Compaq OpenVMS DCL ディクショナリ: N--Z』を参照してください。
18.5.5.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) (11) 5120.00 Free (Mbytes) (2) 2912.30 Minimum size (Mbytes) (12) 3000.00 In use (Mbytes) (3) 87.69 Percentage Read I/Os (13) 98% Read hit rate (4) 92% Write hit rate (14) 0% Read I/O count (5) 178136 Write I/O count (15) 1867 Read hit count (6) 165470 Write hit count (16) 0 Reads bypassing cache (7) 2802 Writes bypassing cache (17) 39 Files cached open (8) 392 Files cached closed (18) 384 Vols in Full XFC mode (9) 0 Vols in VIOC Compatible mode (19) 4 Vols in No Caching mode (10) 1 Vols in Perm. No Caching mode (20) 0 |
(1) Allocated | このキャッシュに現在割り当てられているメモリの量。 |
(2) Free | 使用されていないキャッシュに現在割り当てられているメモリの量。 |
(3) In Use | 使用されているキャッシュに現在割り当てられているメモリの量。これは, Allocated の値と Free の値の差に相当する。 |
(4) Read hit rate | Read hit count フィールドを Read I/O count フィールドで除算して生じる数値 (率)。 |
(5) Read I/O count | システム・スタートアップ以降,キャッシュによって確認された読み込み I/O の総数。 |
(6) Read hit count | システム・スタートアップ以降の読み込みヒットの総数。読み込みヒットとは,データがキャッシュで見つかったため,ディスクへの物理 I/O が必要なかった読み込み I/O である。 |
(7) Reads bypassing cache | システム・スタートアップ以降,キャッシュによって確認されたが,キャッシュされなかった読み込み I/O の総数。その理由としては,大きすぎる/NOCACHE を使用してマウントされたボリュームに対するものである,QIO 修飾子 IO$M_DATACHECK,IO$M_INHRETRY,または IO$M_NOVCACHE のいずれかを使用して指定されているなどが挙げられる。 |
(8) Files cached open | 現在キャッシュされているオープンされたファイルの数。 |
(9) Volumes in Full XFC mode | ローカル・ノードまたは OpenVMS Cluster の別のノードのいずれかでキャッシングが禁止されている場合には,この値は 0 になる。
キャッシングがいずれのノードでも 禁止されていない場合には,この値はローカル・ノード上にマウントされ,次の 2 つの条件を満たしているボリュームの数になる。
|
(10) Volumes in No Caching mode | ローカル・ノードまたは OpenVMS Cluster の別のノードのいずれかでキャッシングが禁止されている場合に,この値は,ローカルノードに現在マウントされているボリュームの数になる。それ以外の場合は 0。 |
(11) Maximum size | キャッシュが拡張できる最大サイズ。 |
(12) Minimum size | キャッシュが縮小できる最小サイズ。これは,予約メモリ・レジストリの VCC$MIN_CACHE_SIZE エントリによって制御される。 |
(13) Percentage Read I/Os | 読み込まれる I/O のパーセント。 |
(14) Write hit rate | このフィールドは,将来使用するために予約されている。 |
(15) Write I/O count | システム・スタートアップ以降,キャッシュによって確認された書き込み I/O の総数。 |
(16) Write hit count | このフィールドは,将来使用するために予約されている。 |
(17) Writes bypassing cache | システム・スタートアップ以降,キャッシュによって確認されたが,キャッシュされなかった書き込み I/O の総数。その理由としては,大きすぎる /NOCACHE を使用してマウントされたボリュームに対するものである, QIO 修飾子 IO$M_DATACHECK,IO$M_ERASE,IO$M_INHRETRY,または IO$M_NOVCACHE のいずれかを使用して指定されているなどが挙げられる。 |
(18) Files cached closed | 有効なデータがまだキャッシュに入っている,閉じられたファイルの数。 |
(19) Volumes in VIOC compatible mode | ローカル・ノードまたは OpenVMS Cluster の別のノードのいずれかでキャッシングが禁止されている場合には,この値は 0 になる。
キャッシングがいずれのノードでも 禁止されていない場合には,この値はローカル・ノード上にマウントされ,次のうちいずれか 1 つの条件を満たしているボリュームの数になる。
これらのボリュームのファイルは, OpenVMS Cluster の書き込みのために共用されている場合には,キャッシュできない。 |
(20) Vols in Perm. No Caching mode | このフィールドは 0 でなければならない。 0 以外の数字である場合には, XFC がこの装置への不正な書込み操作を検出して,この装置へのキャッシングを禁止したことを意味する。 |
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 の読み込み性能を非常に向上させながら,システムの信頼性を維持します。
前へ | 次へ | 目次 | 索引 |