Advanced Operations Guide (v11)

Xtreme I/O ドライバー

Pervasive PSQL 32 ビット サーバー製品(Windows 版)には、Xtreme I/O(XIO)と呼ばれるデータベース アクセラレータがオプションで含まれています。 XIO の使用するための最低限のシステム要件を満たしていれば、カスタム インストールを使用してこのオプションをインストールできます。 XIO は Pervasive PSQL データ ファイルのディスク アクセスを加速させることによってデータベースのパフォーマンスを向上させます。

XIO とデータベース エンジンは共同してパフォーマンスを高めます。データ ファイルが開かれると、エンジンは XIO に通知します。 その時点から、XIO はそのデータ ファイルへのディスク アクセスを加速させます。 XIO は透過的に動作し、ユーザーやアプリケーションの介入は必要ありません。

XIO では、アクセスを加速したくないデータ ファイルを除外することができます。除外を指定するのは簡単で、テキスト ファイルを更新してデータベース エンジンを再起動するだけです。

以下のトピックでは、XIO の追加情報を提供します。

Pervasive の Web サイトの Pervasive PSQL 技術白書で XIO の技術白書も参照してください。この白書では、技術的な説明をこのセクションより詳細に行っています。

留意点

一般的に、XIO は、サイズの大きなデータ セットを使用するほとんどのアプリケーションのパフォーマンスを向上させます。XIO の使用上の留意点を次の表に示します。

表 25 XIO 使用上の留意点
条件
説明
アプリケーションはデータに対してランダム アクセスを使用する(データ アクセスの傾向はシーケンシャルではない)
このようなパターンは、データベース管理システムを使用するアプリケーションの特徴です。
データ セットは Windows システム キャッシュに完全に収まらないほど大きい
Windows システム キャッシュのサイズと比べてデータ セット サイズが大きければ大きいほど、ディスクの読み取りと書き込みはより頻繁に行われます。 XIO は、このようなときに読み取りと書き込みをキャッシュすることができます。
データが Windows システム キャッシュに完全に収まっている場合、XIO は読み取りや書き込み要求を処理しません。
アプリケーションは頻繁にディスク アクセス操作(読み取りおよび書き込み)を実行する
ディスク アクセスは、多くの場合アプリケーションの最も速度の遅い局面です。
既にサード パーティ製のディスク入出力を加速するプログラムを使用している
ディスク I/O を加速するプログラムを複数使用することは、お勧めできません。このようなプログラムは互いに干渉し、予測不能な結果を生みます。
この理由により、XIO のみをディスク I/O プログラムとして実行してください。

システム要件

XIO は、以下の要件を満たすプラットフォームにのみインストールすることができます。

XIO をインストールしたら、システムの設定を以下のようにする必要があります。

XIO メモリ キャッシュ

XIO はブロック レベルのキャッシングを使用しますが、これはデータベース エンジンが速度向上を必要とする特定のファイルに対してのみです。XIO のメモリ キャッシュは、Pervasive PSQL データ ファイル専用です。たとえば、XIO を非 Pervasive ファイルの汎用ディスク アクセラレータとして使用することはできません。

XIO は、高度な追跡およびキャッシュ アルゴリズムを使用してキャッシュを管理します。このアルゴリズムについては、このセクションで説明する範囲を超えていますので、解説しません。ただし、XIO のメモリの使用方法を知ることにより、このドライバーがどのように機能するかをよりよく理解することができます。

メモリの使用

XIO は拡張メモリ、標準メモリ、またはその両方を使用します。

拡張メモリ

XIO は、拡張メモリが使用可能な場合、まず拡張メモリをキャッシュに使用します。拡張メモリは、物理アドレス拡張(PAE)メモリとも呼ばれます。拡張メモリは、4 GB を超えた RAM です。

XIO は、最大 MaxPAEMemMB レジストリに指定された値まで、オペレーティング システムが許す限り大きな拡張メモリを予約します。レジストリ設定を参照してください。XIO は拡張メモリをシステムがシャット ダウンするまで保持します。つまり、キャッシュ全体が拡張メモリに保持されれば、キャッシュ サイズは変化せず、縮小または拡張します。

標準メモリ

拡張メモリが存在しない場合、XIO は標準メモリからキャッシュを取得します。標準メモリは、4 GB までの RAM です。標準メモリでは、XIO はデータベース エンジンのメモリ要求とシステム全体のメモリ要求のバランスをとります。XIO のキャッシュは、ほかのシステム リソースがメモリを取得および開放するように、縮小および拡張します。

MaxCacheSizeMB のレジストリ値が -1(デフォルト)の場合、XIO は現在のシステムの状態に基づいてキャッシュ サイズを増加または減少させて調整を行います。この場合の最大キャッシュ サイズは、物理メモリのおよそ 80% です。

MaxCacheSizeMB が数メガバイトに設定されている場合、XIO はオペレーティング システムが許可するその値までしか拡張しません。

MaxCacheSizeMB にインストールされているメモリを超えた値を設定すると、Windows イベント ログにエラーが書き出され、ドライバーは読み込まれません。イベント ログ メッセージを参照してください。

MaxCacheSizeMB は、標準メモリと PAE メモリ(存在する場合)との組み合わせに基づいたキャッシュの最大サイズです。キャッシュは、メモリがどこにあろうと MaxCacheSizeMB の値を超えて大きくなることはできません。レジストリ設定を参照してください。

メモリの組み合わせ

拡張メモリが存在してもオペレーティング システムが MaxPAEMemMB に指定された値のメモリを割り当てられない場合、XIO は拡張メモリと標準メモリを組み合わせて使用します。XIO は、4 GB に満たない標準メモリを使用する前に、オペレーティング システムから利用可能な 4 GB を超える拡張メモリを使用して MaxCacheSizeMB 設定を実現します。標準メモリに存在する XIO キャッシュは必要に応じて縮小および拡大します。

レジストリ設定

Windows のレジストリには XIO の設定パラメーターが含まれています。パラメーターの大多数は予約されていて変更できません。

ただし、MaxCacheSizeMB および MaxPAEMemMB レジストリ エントリは設定可能です。

レジストリ キー1
用途
有効な値
説明
MaxCacheSizeMB
XIO が使用する物理メモリの最大量をメガバイト(MB)で指定します。
-1 または使用する値を MB 単位で指定します。
デフォルト: -1
この設定は、PAE メモリが存在する場合には、標準メモリと PAE メモリを組み合わせた最大値です。
-1 を指定すると、XIO は必要に応じ標準メモリ内でキャッシュを動的に増大または縮小します。
Pervasive では MaxCacheSizeMB に -1 を設定して XIO がキャッシュを動的に調整できるようにすることを推奨します。
MaxPAEMemMB
XIO がキャッシュに使用する物理アドレス拡張(PAE)メモリの最大値をメガバイト単位で指定します。
0 または使用する値を MB 単位で指定します。
デフォルト: 8192
PAE メモリは、4 GB を超えた RAM です。
1HKEY_LOCAL_MACHINE¥SOFTWARE¥PERVASIVE SOFTWARE¥XIO


注意

上の表に挙げられている以外の XIO レジストリ エントリは変更しないでください。予測不能な結果を招きます。

レジストリの編集は高度な操作です。誤って編集すると、オペレーティング システムが起動しなくなる恐れがあります。必要であれば、経験豊富な技術者に依頼して編集を行ってもらってください。


よく寄せられる質問

このセクションでは、XIO に関する一般的な質問について説明します。

質問
回答
XIO をクラスター環境で使用できますか?
いいえ。Pervasive PSQL をクラスター環境で使用する場合は、Xtreme I/O をインストールしてはいけません。マシンがフェイルオーバーによってオンライン化し、アクセスできない共有記憶域をそのままにしておくと、インストールされている XIO を含むノードがハングすることがあります。
そのため、Pervasive PSQL インストールの[セットアップ タイプ]ダイアログでは、[カスタム]を選択してください。使用可能なインストール オプションとして[Pervasive Xtreme I/O]が表示される場合は、そのオプションをクリックして、[この機能は使用できなくなります。]を選択します。
Pervasive PSQL インストールの残りを完了します。これ以上のカスタマイズは必要ありません。
XIO を仮想マシンで使用できますか?
いいえ。Pervasive PSQL を仮想マシンで使用する場合は、Xtreme I/O をインストールしてはいけません
XIO がインストールされているかどうかは、どうしたらわかりますか?
pvsw.log ファイルの XIO メッセージをチェックしてください。Pvsw.log のメッセージを参照してください。
あるいは、コマンド プロンプトで xiomgr というコマンドを実行します。オペレーティング システムが xiomgr のヘルプ情報を表示すれば、XIO ドライバーがインストールされています。
XIO が有効かどうかは、どうしたらわかりますか?
xiomgr -query のように、xiomgr ユーティリティに "query" オプションを付けて実行します。
このユーティリティは XIO の現在の状態(有効または無効)および実行中かどうかを表示します。Xiomgr を参照してください。
さらに、pvsw.log ファイルの XIO メッセージをチェックすることができます。Pvsw.log のメッセージを参照してください。
XIO が実行中かどうかは、どうしたらわかりますか?
XIO キャッシュがメモリをどれだけ使用しているかは、どうしたらわかりますか?
Xiostats ユーティリティを実行します。
"キャッシュ サイズ" 統計情報に XIO キャッシュのサイズがメガバイト(MB)単位で示されます。Xiostats 統計情報も参照してください。
XIO キャッシュがどれくらい有効かは、どうしたらわかりますか?
一般的に、"読み取りヒット率" 統計情報のパーセンテージをチェックします。パーセンテージが大きいほど XIO はキャッシュを多く使用しており、XIO はより効果的にパフォーマンスを向上させています。
より範囲を狭めるには、"キャッシュ可能な IO %" 統計情報を調べることもできます。これは、Pervasive PSQL データのみに関連するすべての I/O リクエストのパーセンテージを示します。高いパーセンテージは、ディスク アクセス リクエストの大多数が Pervasive PSQL データに関連していることを示します。
Xiostats 統計情報も参照してください。
XIO キャッシュにどのファイルがキャッシュされているかは、どうしたらわかりますか?
Xiostats ユーティリティを実行します。[表示開いているファイル]をクリックします。
機能の全容も参照してください。
"開いているキャッシュ ファイル" 統計情報の値は、自分で開いたと思っているファイル数より多かったり少なかったりするのはなぜですか?
データベース エンジンはファイルを開いて閉じることがあります。このような場合は "開いているキャッシュ ファイル" にはカウントされません。4 つにセグメント化された Pervasive PSQL ファイルを開くと、1 つだけではなく 4 つのファイルが開いていると表示されます。データベース エンジンはセグメントごとに Open オペレーションを実行します。システム ファイルおよびデータ辞書ファイルも開かれ、これらも合計に含まれます。
Xiostats 統計情報も参照してください。

各種ユーティリティ

XIO は、ドライバーに関する 2 種類のユーティリティ xiomgr と xiostats を提供します。

Xiomgr

適用

Windows(32 ビット)
Linux
クライアント
サーバー データベース エンジン
Yes
No
No
Yes

説明

Xiomgr は XIO ドライバーを管理します。

概要

xiomgr -<query | start | stop | enable | disable | help> 

オプション

-query
XIO ドライバーの現在の状態を報告します。たとえば、実行中であるとか、有効であるなどです。
-start
XIO ドライバーを起動します。
xiomgr -stop コマンドの後で実行する場合は、まず、データベース エンジンが開始していることを確認してください。XIO のトラブルシューティングも参照してください。
-stop
XIO ドライバーを停止します。
まず、データベース エンジン サービスを停止する必要があります。XIO のトラブルシューティングも参照してください。
-enable
オペレーティング システムが起動したときに XIO ドライバーを起動します。
enable オプションは、次にオペレーティング システムを起動したときに有効になります。
-disable
オペレーティング システムが起動したときに XIO ドライバーが起動しないようにします。
disable オプションは、次にオペレーティング システムを起動したときに有効になります。
-help
ユーティリティの使用法に関する情報を表示します。

Xiostats

このユーティリティは XIO キャッシュに関する統計情報を表示します。

Xiostats は、本来、統計情報とグラフ化データの調査を十分に理解しているユーザー向けの高度なユーティリティです。そうであっても、このユーティリティではいくつかの基本的な統計情報を提供します。Xiostats に関する一般的なヒントについては、よく寄せられる質問を参照してください。

統計情報

Xiostats の主な目的は、XIO および XIO キャッシュに関する統計情報を提供することです。この情報は、このユーティリティのメイン ウィンドウにマトリックスとして表示されます。次の表では統計情報について説明します。

表 26 Xiostats 統計情報
統計情報
説明
時間
システム日付および時刻。
経過秒数
Xiostats が起動されてから経過した秒数。つまり、どれだけの時間実行されたかを秒数で示します。
物理メモリ MB
そのマシンの拡張メモリを含む物理メモリの合計の概算。
キャッシュ サイズ
XIO キャッシュのサイズ(メガバイト単位)。この値は、キャッシュがどのメモリを使用するかによって異なります。メモリの使用を参照してください。
開いているキャッシュ ファイル
開いていて、実際にキャッシュされている(ファイルが読み取られているかまたは書き込まれている)Pervasive PSQL ファイルの数。
開いているキャッシュ ファイルの合計数は、自分で開いていると思っている数と異なることがあります。1 つのファイルを開くことによって、複数の物理ファイルが開かれることがあります。たとえば、4 つにセグメント化された Pervasive PSQL ファイルでは、1 つだけではなく 4 つのファイルが開いていると表示されます。データベース エンジンはセグメントごとに Open オペレーションを実行します。
圧縮率
キャッシュによって実行されるデータ圧縮の量。
たとえば、圧縮率が 8(8 が 1 になることを意味します)であると仮定します。キャッシュのサイズが 1 GB で圧縮率が 8 の場合、キャッシュには 8 GB のデータが格納されます。
この比率は、データの特性によって異なります。データによっては圧縮可能ですが、圧縮できないものもあります。
読み取りヒット率
"ヒット" は、XIO が物理ディスクではなくキャッシュから読み取るデータを対象とします。
一般的に、このパーセンテージが高いほど XIO が効率的に実行されています。
メモ:データが全部 Windows システム キャッシュに収まっている場合、XIO は読み取り要求を処理しません。
ダーティ バッファー %
キャッシュに既に書き込まれて、まだディスクには書き込まれていないキャッシュ内のデータ量。
キャッシュ可能な IO %
Pervasive PSQL データのみに関連するすべての I/O リクエストのパーセンテージ(XIO は、すべてのディスク アクセス要求を認識しますが、Pervasive PSQL データに関連するもののみに動作します)。
サーバーが Pervasive PSQL 専用である場合、キャッシュ可能な IO % は高いパーセンテージを示します。これは、ディスク アクセス要求の大多数が Pervasive PSQL データに関連するためです。
キャッシュ読み取りバイト数
キャッシュから読み込まれたバイト数。
キャッシュ書き込みバイト数
キャッシュに書き込まれたバイト数。

機能の全容

次の表は、統計情報のレポートをサポートする本ユーティリティの機能の簡単な説明です。

機能
説明
オプション
オプション ダイアログを使用すると、Xiostats がキャッシュをポーリングする間隔など、ユーティリティの機能の一定の部分をカスタマイズすることができます。[オプション]コマンドは、[ファイル]メニューから使用できます。
パラメーター
パラメーター一覧は、Xiostats のさまざまなレジストリ設定を示します。これらの設定の 2 つだけがカスタマイズできます。レジストリ設定を参照してください。
レジストリ設定に挙げられている 2 つ以外の XIO レジストリ エントリは変更しないでください。予測不能な結果を招きます。
パラメーター]コマンドは、[表示]メニューから使用できます。
開いているファイル数
開いているファイルの一覧は、現在どのファイルが開かれ、キャッシュされているかを表示するのに便利です。
開いているファイル]コマンドは、[表示]メニューから使用できます。
パフォーマンス
[パフォーマンス]コマンドを使用すると、PerfMon ユーティリティのカウンターに簡単にアクセスできます。PerfMon ユーティリティは、Windows オペレーティング システムの一部として含まれています。このカウンターの使用については、そのマニュアルを参照してください。
グラフ
[グラフ]コマンドを使用すると、統計情報をグラフ化してさまざまな方法で表示することができます。データは、変数、微分、積分のグラフとして表示することができます。
Xiostats ログに保存された統計情報データもグラフ化することができます。Xiostats のログは、スプレッドシート プログラムで表示可能なカンマ区切り(CSV)形式で保存されたテキスト ファイルです。
ファイル]メニューのコマンドを使用して、ログ ファイル(CSV ファイル)を開いたり閉じたりします。
ログ ファイル
ログ ファイル コマンドを使用すると、統計情報のログへの記録を開始および停止したり、ログのスケジュールを設定することができます。
Xiostats のログは、スプレッドシート プログラムで表示可能なカンマ区切り(CSV)形式で保存されたテキスト ファイルです。
ファイル]メニューのコマンドを使用して、ログ ファイル(CSV ファイル)を開いたり閉じたりします。
メモ:ログ間隔が非常に短い場合、ログ ファイルのサイズは短期間で非常に大きくなります。

除外ファイル

XIO には xioexclude.lst というテキスト ファイルが含まれており、これを使用してアクセスを加速したくないデータ ファイルを指定することができます。一般的には、除外ファイルを追加する必要はありません。除外ファイルを選択する場合には、以下の手順に従います。

  1. このファイルをテキスト エディターで開きます。
    デフォルトで、このファイルは %allusersprofile% の下の Pervasive Software¥PSQL にあります。デフォルトで、オペレーティング システムは %allusersprofile% の下のいくつかのフォルダーを隠しフォルダーにするため、隠しファイルを検索するようにしてください。
  2. xioexclude.lst の指示に従ってファイル名を追加します。
  3. オペレーティング システムを再起動します。

Pvsw.log のメッセージ

データベース エンジンのインストール時に、XIO がインストールされ、データベース エンジンが XIO キャッシュにファイルをキャッシュすることができれば pvsw.log ファイルにメッセージが書き込まれます。このログ ファイルには次のようなメッセージが書き込まれます。

MicroKernel は XIO キャッシュ ドライバーへのアクティブなリン
ケージを確保しました。 


メモ

XIO がインストールされているが、pvsw.log にこのメッセージが含まれていない場合は、データベース エンジンが XIO と通信することができず、ファイルはキャッシュされません。これを修正するための処置は、トランザクショナル サービスをいったん停止して再開することです。『Pervasive PSQL User's Guide』の Windows サーバー上でのサーバー エンジンの起動と停止を参照してください。サービスを再開したことによって、データベース エンジンが XIO と通信できるようになると、このメッセージが pvsw.log に書き込まれます。


イベント ログ メッセージ

XIO は、次の表に示すようにエラー メッセージを Windows イベント ログに書き込みます。

表 27 Xiostats イベント ログ メッセージ
メッセージ
対処方法
XIO started.
不要。
XIO did not shut down properly.
このエラーが連続して発生する場合は、Pervasive のテクニカル サポートにお問い合わせください。
XIO failed to load because a memory allocation of %2 bytes for %3 failed.
インストールされているシステム メモリ量と、MaxCacheSizeMB および MaxPAEMemMB の設定を確認してください。
XIO detected insufficient RAM (%2MB).It requires %3MB to operate.
システム RAM を最低限必要な 2 ギガバイト(GB)に増やしてください。
XIO encountered an unrecoverable system error. %2.
Pervasive のテクニカル サポートにお問い合わせください。
XIO detected the parameter %2 has an invalid value %3.
The legal range is %4 to %5.
The current setting has been coerced to the default value %6.
パラメーターを正しい範囲内の値に設定してください。
NT OS Version %2.%3 is not a Server Build.
XIO detected the parameter %2 has an invalid value %3.
The legal range is %4 to %5.
The current setting has been coerced to the minimum value %6.
パラメーターを正しい範囲内の値に設定してください。
XIO detected that the installed memory size changed from %2MB to %3MB.
インストールされているメモリを調べ、最低量の 2GB が使用可能であることを確認してください。
The maximum cache size parameter (%4MB) may need adjustment.
MaxCacheSizeMB の設定を調べ、システム メモリとデータ セットの量に基づいて必要な量に調整してください。

XIO のトラブルシューティング

このセクションでは、XIO の使用中に問題が発生した場合の対処方法について提案します。

表 28 XIOトラブルシューティング
状況
説明
XIO が有効であるのに、システム起動時にロードされない。
1. オペレーティング システムをセーフ モード(一般的にシステム起動時に F8 キーを押す)で起動します。
2. XIO ドライバーが読み込まれないように、コマンド プロンプトで xiomgr -disable というコマンドを実行します。
デフォルトで、xiomgr は、Program Files ディレクトリの下の Pervasive ツリーの PSQL¥bin¥ ディレクトリにあります。『Getting Started with Pervasive PSQL』の Pervasive PSQL ファイルがインストールされる場所も参照してください。
3. オペレーティング システムを再起動すると、XIO を開始せずにロードされます。
XIO キャッシュがデータベース エンジンの読み書きに応答しない。
この状況は、データベース エンジンおよび XIO キャッシュ間の通信がリンクされなくなった場合に起こります。以下の手順を使用して、データベース エンジンと XIO キャッシュ間の通信を再確立してください。
1. Pervasive PSQL サービスを停止します。
2. Xiomgr -stop コマンドを実行します。
3. Xiomgr -start コマンドを実行します。
4. Pervasive PSQL サービスを開始します。
リンクの切断は、以下のように間違った順序で動作を行った場合に発生します。
A.  Pervasive PSQL サービスを停止する。
B.  Xiomgr -stop コマンドを実行する。
C.  Pervasive PSQL サービスを開始する。
D.  Xiomgr -start コマンドを実行する。
問題は、手順 C と D の順序が逆であることです。Xiomgr -stop コマンドに続いて、まず Xiomgr -start コマンドを実行し、次に Pervasive PSQL サービスを開始する必要があります。


パフォーマンス チューニング

参照整合性の設定