QEMU/KVMの処理速度の現状について
ディストリが違うこともあり、条件が結構異なるとは思うのだが、CPUを使用する処理速度の比較として、id:hirose31:20070508:1178636273と同じ実験を行ってみた。ただし、入力ファイルのサイズは大幅に増やし、cpufreqは最低クロック固定にした。
環境
- ホスト: Gentoo Linux 2007.0 (x86_64)
- ゲスト: Debian lenny (x86_64)
更に、比較のため、VirtualBox上のDebian lenny(32bit版)も用意した。
実験
ランダムデータを作成して、まずホストOS上で実行。$ dd if=/dev/urandom of=infile bs=1M count=100 $ time openssl enc -aes256 -in infile -out out -k hoge (ホストの結果表示)
同じ元データを使用するために、先ほど作成したランダムデータは、CDイメージ経由でゲストOSに渡す(ネットワークの調子が悪いため、SFTPは使えなかった)。
$ mkisofs -o test.iso infile $ qemu-system-x86_64 [HDDイメージ] -cdrom test.iso -boot c -m 256 &
ゲストOS上の作業は、QEMU/KVM上のOSとVirtualBox上のOSとでそれぞれ行った。
guest# mount -t iso9660 /dev/cdrom /media/cdrom guest# cp /media/cdrom/infile . guest# time openssl enc -aes256 -in infile -out out -k hoge (ゲストの結果表示)
ホスト・ゲストとも、最初の数回は時間が長くかかるので、処理時間が落ち着くまで繰り返した後、5回続けて実行した平均を計算した(初回実行時の比較ではない点に注意)。
結果
環境 | 平均処理時間(real) |
---|---|
ホストOS上 | 4.205 |
VirtualBox 1.5.2(AMD-Vオフ) | 4.560 |
VirtualBox 1.5.2(AMD-Vオン) | 4.756 |
KVM 51 | 6.157 |
[引用]http://web.archive.org/web/20080511181058/http://blogs.dion.ne.jp/kazuu/archives/4914924.html 「VirtualBoxの速さ」より
サイトにある解説を読んでいると、Intel VT/AMD-Vは、使うとかえって遅くなったりするから積極的には使わないんだという記述があったりして面白いです。
という話もあるように、現状では高速化のために効果を発揮するとは言えないことを裏付けてしまう結果となった。今後の性能アップに期待。
使用したバージョン:
- Linux 2.6.23 + KVM 51
- VirtualBox 1.5.2(x86_64用バイナリ版 virtualbox-bin 1.5.2-r1)