![]()
XenのDomainUをLVMで作るとFileの時よりどれくらい早いのか実験してみた
はじめまして。研究員の白井です。
このたび、CentOS5&Xen3でサーバー構築を行いました。 基本はファイルベースでドメインUを作っていますが、DBサーバーとして使いたいドメインUはレスポンスを意識してLVMベースで作ってみました。でも、実際はどれくらいDomainUをLVMベースで作るのとファイルベースで作るので違いがあるのか気になったので実験してみました。
実験マシン
CPU : Core2Duo 2.2GHz L2-2M
Mem : 4GB PC2-5300
HDD : SATA 7200 rpm 80GB × 2 RAID1-software
OS : CentOS5
Xen : 3.0.3
実験環境(DomainU)
VCPU : 1
Mem : 1024MB
Disk : 10GB-LVM
実験内容
約300Mのファイルを10秒間隔で10回書き込みその時間を計測for i in [1] [2] [3] [4] [5] [6] [7] [8] [9] [10];do sleep 10;echo $'\n\n' $i;date;time dd if=/dev/zero of=/tmp/hdparm_write$i.tmp ibs=300K obs=300K count=1024;date;done
実験結果

この実験環境だとファイルベースでは30Mbps、LVMベースでは36Mbpsの速度が出るようです。また300Mbyteのファイルだと、どちらも1回目はキャッシュが効いてとんでもない数字が出るのであまり使わないように考慮しました。
(1) 多分LVMベースはファイルベースの1.25倍程度のスピードが出るようです
…2回目の実験の結果より
(2) ファイルベースは初めてそのサイズの領域を使うとき?はとても遅い。
通常の場合の100倍時間がかかるのは覚悟です
…1回目の実験の6回目以降とそれ以外の比較より
(3) LVMベースでは上記のような「とても遅い」という状況は発生せず安定しています
…1回目と2回目の実験の結果がほぼ同じことから
(4) 普通のシステムで100Mbyte程度のファイル書き込みならキャッシュが効いて
あまりスピードは変わらない可能性が高いです
…各回の1回目のデータより
もしかするとファイルベースの場合は、エンジンの「馴らし」のようにいったん確保領域にダミーで書き込みを行って、削除してから使うのがいいのかもしれませんね。
自分でやってみて色々実感しました。
コメント (2)
hajime さん。ご質問ありがとうございます。
実験環境はスパースファイルではないように作りました(no sparse file)。それでもこの結果ですからスパースファイルで作ったらどんなことになるんでしょうね^^;
ファイルベースのほうはスパースファイルですか?
もしよければ参考までに教えて下さいm(__)m