KVM (virtio) のI/Oパフォーマンス評価

測定環境は下記のとおり。

4並列でのランダムアクセス (16KB)

  ホスト ゲスト (cache=writethrough) ゲスト (cache=none)
Read 207.7 138.3 187.4
Write 137.6 122.6 133.8

単位は IOPS。測定に使ったのは randombench.cc

7200rpm のディスクなので、ホストでの read 時と、ゲスト (cache=none) での read 時に NCQ が効いていることがわかる。この程度の落ち込みなら OK かな。

シーケンシャルアクセス

  ホスト ゲスト (cache=none)
Read 72.4 57.5
Write 28.1 21.3

単位は MB/秒。測定方法は、

dd if=/dev/zero of=foo bs=10485760 count=100 oflag=direct
dd if=foo of=/dev/null bs=10485760 count=100 iflag=direct

16:46 追記: cache=none の場合の値を追加。シーケンシャルアクセスの測定手法を O_DIRECT に変更

参考: Video: JLS - The KVM qemu storage stack - dougsland, http://www.linuxfoundation.jp/jp_uploads/JLS2009/jls09_hellwig.pdf