TOPサーバ構築・運用> I/O性能の検証
Xenパフォーマンステスト
Xenのパフォーマンステスト 〜どこまで性能がでるの?

第2回:ドメインUのI/Oパフォーマンスチェック
著者:宮本 久仁男   2006/10/13
1   2  3  次のページ
I/O性能の検証

   第1回ではXenのドメインUにおけるCPU性能について解説しましたが、今回はI/O性能について解説してみましょう。なお、ハードウェア的な検証環境および、ドメインUの基本的な環境については第1回と同様です。

環境の作り方

   今回の検証でもっとも困難をきわめたのは環境作成です。というのも、I/O制御に関しての動作において、次の2点が問題となったからです。

  • LinuxにおけるファイルI/Oはバッファキャッシュ経由で実施される
  • XenのドメインU側でのファイルI/O制御と仮想ディスク制御、そしてドメイン0のファイルI/O制御が関係する

表1:I/O性能の検証をする上での問題点

   正直、検証環境の作成時に思うような結果がでなかったというのもあります。このため、次のようなアプローチを取りました。

  1. 検証用のファイルI/Oは、ドメインUの定義において、「phy:」で指定したディスク上のファイルシステムに対して行う。具体的にはリスト1のように、ドメインU上で「/dev/hda4」となるデバイスに対してI/Oを発生させます。

  2. ドメインUにおいて、検証用のファイルI/Oを行うファイルシステムはsyncオプションを付加してマウントする(「mount /dev/xxx /yyy -o sync」というようにする)。具体的には、上記の例では「/dev/hda4」と指定されたデバイスのマウント時にsyncオプションを指定します。

  3. ドメイン0においても、検証用のファイルI/Oを行うファイルシステムはsyncオプションを付加してマウントする。

表2:ファイルシステムのマウント方法

リスト1:仮想ディスクの指定方法
disk = [ 'file:/home/xen/honeypot.img,hda1,w','phy:hdc5,hda4,w' ]

   この前提を元にしてI/O検証を行いました。


ドメイン0における「実ディスク」に対するファイルI/Oの性能を見る

   まず、ドメイン0における「実在のディスク」上に構築されたファイルシステムに対して、連続した領域に対するファイルI/Oを実施してみましょう。検証内容は次の通りです。

  • 充分に大きい空き領域を持つパーティションに対してファイルI/Oを実施
  • 空き領域が連続した領域にあると仮定してファイルI/Oを実施
  • 同期I/Oを発生させる

表3:ファイルI/Oの検証内容

   正確には、連続した領域を確保できている「であろう」という状況での検証になります。

   具体的には、次に示すコマンドラインを実行します。同期I/Oの性能がそんなによいわけではないため、ddコマンドのcountオプションで指定する数値はそんなに大きくなくてもよいでしょう。

dd if=/dev/zero of=/eval/evalIO bs=1024k count=32

   この操作を実行した結果を次に示します。

kid:/tmp# dd if=/dev/zero of=/tmp/evalIO bs=1024k count=32
32+0 records in
32+0 records out
33554432 bytes transferred in 17.615797 seconds (1904792 bytes/sec)

   数回繰り返してみた結果、おおよそ1.9MB/secより少し上の性能がでました。

1   2  3  次のページ


宮本 久仁男
著者プロフィール
宮本 久仁男
某大手SIerに勤務。OSおよびミドルウェア、アプリケーション開発、インターネットサーバの運用管理、社内技術支援などを経て、現在は動向調査業務に従事する。業務の傍ら、大学にも所属(博士後期課程)し、研究生活を送る。あらゆる分野に興味を持ち、それらについて自学自習で学びつつ、成果をコミュニティにフィードバックしたり、研究/検証テーマを模索したりという日々。Microsoft MVP (Windows - Security)というアワードも受賞しているものの、どこにでもいそうなエンジニア風。


INDEX
第2回:ドメインUのI/Oパフォーマンスチェック
I/O性能の検証
  ドメインU×1個+仮想ディスク×1個
  異なる物理ディスクに仮想ディスクを構築 〜 その1