Pervasive PSQL Xtreme I/O 32 ビット アプリケーションのパフォーマンス 向 上 Pervasive Software ホワイト ペーパー 2009 年 12 月
目 次 技 術 的 な 概 要.... 1 XIO の 概 要.. 1 キャッシング... 1 インテリジェント 圧 縮.. 2 データの 書 き 込 み. 2 対 称 型 マルチプロセッシング(SMP)... 3 カスタマイズ.. 3 XIO の 使 用 に 適 した 状 況... 3 XIO の PSQL v10 への 統 合 方 法.... 3 XIO 統 計 情 報. 5 XIO Manager. 6 結 論... 6 問 い 合 わせ 先 / 商 標 情 報.......7
技 術 的 な 概 要 アプリケーションが 基 盤 となるハードウェアやオペレーティング システムによって 制 限 されることはよくあることです たとえば データベースなどのディスクを 大 量 に 消 費 するアプリケーションは 構 成 している 記 憶 装 置 のハードウェ ア 速 度 (RAM-DISK のギャップ)によって 制 限 されることがあります 記 憶 サブシステムへのアクセスは ランダム アクセス メモリへのアクセスよりはるかに 遅 いです 実 際 私 たちは 記 憶 域 へのアクセスをミリ 秒 単 位 で 記 述 してい るのに 対 し RAM アクセスについてはナノ 秒 単 位 で 記 述 しています アプリケーションのパフォーマンスを 向 上 させるための 典 型 的 な 方 法 は システムにメモリを 増 設 することです この 方 法 は 効 き 目 がありますが オペレーティング システムの 制 限 を 受 けます たとえば Windows Server 2003 Standard Edition(x86)は すべてのアプリケーションのアドレス 可 能 ( 仮 想 )メモリを 2 GB に 制 限 していて 実 行 可 能 イメージおよびその 一 部 もこの 制 限 に 含 まれます したがって 2 GB 制 限 が 効 力 を 持 ち 続 けるため メモリを 増 設 することが 必 ずしもアプリケーションの 向 上 に 直 接 つながるとは 限 りません Windows の /3GB スイッチを 使 用 すれば この 制 限 を 乗 り 越 えられ アプリケーションでもっと 多 くのメモリを 使 用 できるようになります ただし この 方 法 は しばしばオペレーティング システムのほかの 部 分 に 影 響 を 与 えることがあり Windows やドライバのため の 領 域 が 小 さくなるなど そのメリットは 限 られます パフォーマンスを 向 上 させるための 3 つ 目 の 方 法 は 汎 用 のキャッシュ 製 品 をインストールすることです この 場 合 もやはり かかる 方 法 は 次 善 の 策 と 言 えます なぜなら キャッシュ 製 品 はすべてのものをキャッシュする 傾 向 に あり 特 定 のアプリケーションおよびそのデータ 用 には 設 計 されていないからです 最 後 の 方 法 は 64 ビット バージョンの Windows 上 でデータベース アプリケーションを 実 行 することです この 方 法 では アプリケーションは 2 GB を 超 えるメモリのアドレスが 可 能 になりますが オペレーティング システムの パフォーマンスおよび I/O によって データのページングなどが 制 約 されます もう 1 つの 制 限 は CPU と RAM 間 で 利 用 可 能 な 帯 域 幅 (CPU-RAM のギャップ)です これは CPU-RAM の 帯 域 幅 を 消 費 し システム パフォーマンスを 制 限 する メイン メモリから CPU のキャッシュへ 転 送 されるデータ の 量 が 要 因 となります Pervasive PSQL Xtreme I/O(XIO)は さまざまなハードウェア コンポーネント 間 の I/O を 合 理 化 することによって RAM-DISK および CPU-RAM のギャップをなくそうと 努 めます XIO の 概 要 Pervasive PSQL Xtreme I/O は Pervasive PSQL のデータベース アプリケーションのパフォーマンス 向 上 に 取 り 組 む 専 用 のシステム アクセラレータです これは 4 GB 以 上 の RAM を 搭 載 した 32 ビット(x86)バージョン Microsoft Windows のデバイス ドライバとして 実 装 されます XIO はいくつかの 技 術 を 駆 使 して サーバーの 記 憶 装 置 メモリ およびプロセッサのサブシステムが 最 大 許 容 量 で 機 能 するよう これらの 間 におけるデータの 流 れを 改 善 します 例 として 多 数 のレコードをテーブルに 挿 入 する Pervasive PSQL アプリケーションを 考 えてみましょう これは テーブルを 提 供 するデータベース ファイルのさまざ まな 領 域 へのランダム I/O 要 求 を 招 きます XIO はこの 要 求 を 合 理 化 することによって 記 憶 域 への I/O 要 求 の 総 数 を 減 らし 結 果 的 に 負 荷 を 軽 減 します 記 憶 域 コントローラおよび PCI バスにかかる 負 荷 が 減 るということ は 結 果 的 に ほかのトラフィック 用 の 帯 域 幅 が 大 きくなるということです 同 様 に XIO はメイン メモリとプロセッサ 間 のデータの 流 れを 改 善 します メモリに 格 納 されたデータは 圧 縮 され ているため データはプロセッサによって FSB(Front Side Bus)を 通 じて 転 送 され プロセッサの L2(または L3) キャッシュに 直 接 解 凍 されます これが FSB 帯 域 幅 の 効 率 的 利 用 です Pervasive PSQL に 付 属 する XIO で は PSQL アプリケーションのみが このようなパフォーマンス 向 上 技 術 から 利 益 を 得 られます このホワイト ペーパーでは Pervasive PSQL アプリケーションのパフォーマンスを 向 上 させるために XIO が 利 用 するさまざまな 技 術 について 説 明 します キャッシング キャッシングは 通 常 はハード ディスクなどの 記 憶 域 に 存 在 するデータへのアクセス 時 間 を 短 縮 するための よく 知 られた 手 法 です キャッシュは DRAM 内 にあるため データへのアクセスが 大 幅 に 速 くなります XIO がキャッ シングをフル 活 用 して キャッシュされたデータのディスク I/O を 排 除 すれば PCI バスのトラフィックと 記 憶 域 コン トローラおよびハード ドライブへのトラフィックが 減 少 します この 減 少 によってリソースが 解 放 され ほかの 要 求 を Pervasive PSQL Xtreme I/O 1
処 理 できるようになるため 待 ち 時 間 が 減 り 帯 域 幅 が 増 えることになります 多 くのキャッシング サブシステムは 何 が 格 納 されるかについては 知 り 得 ません 対 照 的 に XIO は Pervasive PSQL データベース ファイルのみを 格 納 します XIO のすべてのキャッシュがデータベース エンジンのサービス へ 引 き 渡 されます たとえば 1 GB の XIO キャッシュは PSQL のキャッシュを 同 じ 量 だけ 拡 張 します これには Pervasive PSQL データベース ファイルの 専 用 記 憶 域 が 用 いられます 前 述 のとおり 32 ビット バージョンの Windows は アプリケーションにアドレス 可 能 なメモリを 2 GB しか 提 供 し ません この 2 GB のメモリ 範 囲 には 実 行 可 能 なコード セグメントも 含 まれるため XIO がない 場 合 データベー ス エンジンのキャッシュは 2 GB まで 達 しません XIO がある 場 合 には データベース エンジンのキャッシュは XIO キャッシュによって Windows が 許 可 する 物 理 メモリまで 拡 張 されるため 2 GB の 障 壁 は 問 題 になりません たとえば Windows 2000 Advanced Server(/PAE)では 最 高 8 GB まで 物 理 メモリを 利 用 できます XIO があれ ば データベース エンジンのキャッシュは Windows 2000 で 利 用 できるどのような 物 理 メモリによっても 拡 張 され ます 64 ビットのアドレス 指 定 を 使 用 すれば XIO は 拡 張 メモリにアクセスすることができ 32 ビット システムにおける 4 GB 物 理 メモリの 障 害 を 乗 り 越 えられます 総 括 すれば 32 ビット オペレーティング システム 上 で 動 作 する 32 ビットデータベース アプリケーションが 拡 張 メモリの 恩 恵 を 受 けられるようになる ということです 唯 一 の 制 約 は オペレーティング システムがこのメモリを 利 用 できるようにしなければならないということです( 一 部 の Windows バ ージョンは 4 GB 以 上 のメモリが 存 在 しても 使 用 可 能 なメモリ 量 を 4 GB に 制 限 します さまざまな Windows リ リースにおけるメモリ 制 限 の 詳 細 については http://msdn2.microsoft.com/en-gb/library/aa366778.aspx をご 覧 くだ さい) XIO キャッシュのもう 1 つの 特 徴 は 動 的 であるということです XIO はシステム パフォーマンスの 多 くの 局 面 (RAM や CPU 使 用 率 など)を 監 視 して RAM の 必 要 量 とシステムの 残 量 のバランスが 保 たれるよう XIO キャ ッシュを 増 減 できるようにしています この 結 果 管 理 者 はキャッシュ サイズを 選 択 する 必 要 がなくなります また XIO は 物 理 メモリの 使 い 方 にも 注 意 を 払 っており 物 理 メモリが 不 要 である 場 合 には これを 保 持 しません たとえ ば データベース アプリケーションのデータ セットがデータベース エンジンのキャッシュ 内 に 収 まるときは XIO はどのキャッシュも 使 用 しません 最 後 に 拡 張 メモリを 使 用 する XIO の 部 分 は 固 定 です 4 GB のアドレス 境 界 に 満 たないメモリとは 対 照 的 に XIO は 拡 張 メモリがアンロードされない 限 り 拡 張 メモリを 解 放 しません たとえば 8 GB の 物 理 メモリが 搭 載 され たサーバーと 8 GB のメモリをサポートする Windows バージョンについて 考 えてみましょう XIO がインストール されていれば データベース エンジンのキャッシュは RAM( 拡 張 メモリ)を 最 低 でも 4 GB まで あるいは それ 以 上 のキャッシュ サービス 要 求 を XIO が 検 出 した 場 合 には 4 GB 以 上 に 拡 張 します インテリジェント 圧 縮 インテリジェント 圧 縮 は XIO キャッシュの 中 心 的 な 役 割 を 果 たします それは キャッシュする 必 要 のあるデータ セットに 対 して キャッシュの 及 ぶ 範 囲 つまり 有 効 性 を 拡 大 します たとえば 2 : 1 の 圧 縮 率 を 使 用 すれば XIO が 達 することのできるキャッシュの 範 囲 は 2 倍 になります XIO には 異 なるデータ 型 それぞれに 適 した 多 数 の 圧 縮 アルゴリズムが 含 まれています 圧 縮 はキャッシュの 及 ぶ 範 囲 を 広 げるだけでなく FSB の 負 荷 も 減 らします たとえば 2 : 1 の 圧 縮 率 を 用 いた 場 合 圧 縮 されたバッフ ァを FSB 経 由 で 転 送 するコストは 圧 縮 されていないバッファを 転 送 する 場 合 の 半 分 になります XIO には 8 : 1 比 率 でデータを 圧 縮 する 能 力 があります XIO は 受 信 データすべてに 対 して 単 一 の 圧 縮 アルゴリズムを 適 用 しない(つまり 1 種 類 で 全 てを 賄 わない)で 前 方 参 照 的 にアルゴリズムをデータに 適 用 します これにより 試 行 錯 誤 しなくても 特 定 のデータに 対 して 適 切 な 圧 縮 プログラムを 選 択 することができます データの 書 き 込 み XIO はまた パフォーマンスをさらに 向 上 させるために 書 き 込 み 操 作 の 合 理 化 も 行 います 現 在 のストレージ ア ーキテクチャの 効 率 の 悪 さを 考 慮 に 入 れて 書 き 込 みの 集 約 と 書 き 込 みの 順 序 付 けという 2 つの 技 術 によって 効 率 の 悪 さを 軽 減 しています Pervasive PSQL Xtreme I/O 2
多 数 の 書 き 込 み 要 求 の 結 果 を 集 め それらを 1 つの 大 きな 要 求 にまとめることで XIO は 格 納 を 要 求 する 件 数 を 減 らし ディスク コントローラおよび PCI バスの 負 荷 を 効 果 的 に 軽 減 します その 結 果 帯 域 幅 が 改 善 されて 待 ち 時 間 が 減 ります 現 在 のストレージ アーキテクチャで I/O パフォーマンスを 制 限 している 最 大 のものの 1 つは ハード ドライブの ヘッドの 動 きです それは 媒 体 へ 書 き 込 みを 行 う 前 に その 円 盤 上 の 正 しい 位 置 へヘッドが 移 動 するからです ヘッドがある 位 置 から 別 の 位 置 へ 移 動 するのにかかる 時 間 をシーク 時 間 と 言 います シーク 時 間 はディスクの 性 能 に 直 接 影 響 を 与 えます 順 序 付 けられていない 書 き 込 み 操 作 がディスク コントローラへ 送 られたときの 円 盤 上 を あちこちへと 移 動 するヘッドと その 移 動 にかかる 時 間 を 想 像 してみてください XIO は 転 送 の 効 率 性 が 最 大 に なるよう 書 き 込 み 要 求 を 順 序 付 けることによって この 問 題 を 軽 減 します 強 調 すべき 重 要 な 点 は たとえ XIO が 最 大 スループットの 書 き 込 み 要 求 の 順 序 付 けをし 直 しても データの 整 合 性 は 損 なわれないということです 対 称 型 マルチプロセッシング(SMP) 対 称 型 マルチプロセッシング(SMP)アーキテクチャにおける 一 般 的 な 問 題 は CPU の 競 合 です この 問 題 は 複 数 のプロセッサが 物 理 メモリの 同 一 ブロックへのアクセスを 必 要 とする 場 合 に 発 生 します 一 般 に プロセッサを 増 設 すればサーバーのパフォーマンスは 向 上 しますが OS およびアプリケーションが SMP アーキテクチャを 利 用 できるように 設 計 されていなければなりません そうでなければ ( 共 有 メモリの)プロセッサ 間 の 同 期 の 欠 如 によっ て このアーキテクチャの 利 点 が 減 少 します XIO は SMP プラットフォームを 利 用 するように 設 計 されています つまり さらにスループットを 増 やせるよう XIO の 内 部 構 造 は x86 プロセッサを 活 用 できるようになっています カスタマイズ XIO は 異 なるアプリケーション ファイルに 合 わせて 調 整 することもできます たとえば データベースに 格 納 されて いる 圧 縮 イメージが 高 い 圧 縮 率 をもたらさない 場 合 そのイメージを 保 持 しているデータベース ファイルについて は XIO アクセラレーションを 無 効 にする 方 が 適 切 であるかもしれません XIO には 除 外 フィルタが 付 属 しており テキスト ファイルに 保 存 されているファイル 名 およびディレクトリの 一 覧 が 起 動 時 にデータベース エンジンによっ て 読 み 込 まれます 管 理 者 は 一 覧 を 作 成 し その 一 覧 に 指 定 されている 名 前 を XIO のアクセラレーションから 除 外 するようエンジンに 指 示 することができます それにより 特 定 のファイルが XIO によってキャッシュされなくなり ます XIO の 使 用 に 適 した 状 況 XIO は ディスク 使 用 率 の 高 い 大 きなデータベースに 最 適 です たとえば 次 のような 場 合 です データベース サイズ(データ セット)が PSQL の L1 キャッシュと Windows システム キャッシュを 合 わせたサイズよりも 大 きい データ 要 求 のパターンがランダムである(シーケンシャルではない) アプリケーションがディスク I/O を 集 中 的 に 行 う つまり 多 数 のディスク 要 求 を 生 成 する XIO の PSQL v10 への 統 合 方 法 XIO は PSQL によって ユーザーおよびカーネル モードの OS レイヤにインストールされます ユーザー モー ド レベルで 2 つのユーティリティ(xiomgr.exe xiostats.exe)とインターフェイス モジュール(xioifc.dll)が 共 通 の ビューおよびコントロール インターフェイスを XIO に 提 供 します 下 の 2 つの 図 は XIO がインストールされて いない PSQL とインストールされている PSQL を 示 しています XIO がインストールされていない 場 合 PSQL は L1 および L2 キャッシュを 使 用 します L2 キャッシュは 圧 縮 を 使 用 して 格 納 されるデータの 量 を 増 やしますが Windows の 2 GB 制 限 は 残 っています PSQL の 標 準 の 32 ビット インストールでは L1 キャッシュは 使 用 可 能 メモリの 20% を 消 費 し L2 キャッシュは 使 用 可 能 メモリの 最 大 60% まで 消 費 することができます Pervasive PSQL Xtreme I/O 3
XIO がインストールされている 場 合 は 標 準 の PSQL L2 キャッシュを オフ にして XIO が PSQL L2 キャッシ ュの 役 割 を 担 うことができるようにしておくことで より 多 くのメモリ より 速 い 圧 縮 を 提 供 します ユーザー モデル レベルではインターフェイス モジュールを 通 して 連 結 し カーネル モード レベルでは 3 つの XIO ドライバ (XIO ファイル システム フィルタ XIO ディスク フィルタ および XIO キャッシュ)が 追 加 されていることに 注 目 してください XIO に PSQL データベース ファイル 専 用 のシステム メモリをさらに 与 えるため OS のレジストリ 設 定 "large system cache" はオフにします Pervasive PSQL Xtreme I/O 4
XIO 統 計 情 報 XIO 統 計 情 報 は GUI アプリケーションで XIO のキャッシュ パラメータと 主 要 なパフォーマンス 値 に 関 する 統 計 情 報 をリアルタイムに 表 示 します ユーティリティが 提 供 するのは 基 本 的 な 統 計 情 報 ですが これは 上 級 ユーザ ー 向 けであるため さまざまな 統 計 要 素 および 統 計 値 の 理 解 が 必 要 になります 情 報 は このユーティリティのメイ ン ウィンドウにマトリックスとして 表 示 されます Pervasive PSQL Xtreme I/O 5
XIO Manager XIO Manager は XIO ドライバの 開 始 モードおよび 状 態 を 制 御 するコンソール アプリケーション(xiomgr.exe)で す これを 使 用 すれば 保 守 やトラブルシューティングのために ドライバの 状 態 を 変 更 することができます XIO Manager は 以 下 に 示 すコマンド スイッチをサポートしています 結 論 XIO は Pervasive PSQL データベースの 32 ビット ベース アプリケーションのパフォーマンス 向 上 のみを 目 的 と して 用 いられます これは 4 GB 以 上 の RAM を 搭 載 した 32 ビット(x86)バージョンの Microsoft Windows オ ペレーティング システムのデバイス ドライバとして 実 装 されます この 高 度 な I/O アクセラレータは メモリを 拡 張 し Pervasive PSQL Summit v10(tm) データベース エンジンの パフォーマンス 能 力 を 高 めます 多 様 な 技 術 およびアルゴリズムを 使 用 して ランダムなデータベース 要 求 を 引 き 起 こす 大 きなデータベース アプリケーションのパフォーマンス 向 上 を 実 現 するとともに 物 理 メモリにデータを 読 み 込 むことで より 速 いアクセスのための 恩 恵 を 受 けられます Pervasive PSQL Xtreme I/O 6
問 い 合 わせ 先 株 式 会 社 エージーテック 東 京 都 千 代 田 区 神 田 錦 町 1-21-1 昭 栄 神 田 橋 ビル3F TEL:03-3293-5300 FAX:03-3293-5270 カスタマーセンター TEL:03-3293-5283 info@agtech.co.jp 2009 Pervasive Software Inc. All rights reserved. Pervasive の 社 名 および 製 品 名 はすべて 米 国 お よびその 他 の 国 における Pervasive Software Inc. の 商 標 または 登 録 商 標 です その 他 の 商 標 は 各 所 有 者 が 保 有 するものです Pervasive PSQL Xtreme I/O 7