エンジョイAsobi

スマホとWindowsとLinuxを遊ぶ。

Ubuntu Windows

Hyper-V 対 VMware Player対決

投稿日:2014年7月6日 更新日:

先日、バーチャルマシン上でプログラムをビルドすると時間がかかってしようがない。ビルドするならやっぱネイティブマシンだよね、と話している人がいました。

その人が使っているのはホスト型の仮想化だったのですが、それを聞いてふと、ハイパーバイザ型の仮想化に変えたらネイティブマシンまで速くなくても、もう少しマシな速度が出ないかなと思いました。

ホスト型とハイパーバイザ型では、ディスクI/O等ハードへのアクセスにホストOSを介さない分、ハイパーバイザ型の方が速いんだとか聞きます。でも確かめたことが無いので断言できないな。

そんなわけで今回は少し比較実験してみました。
手元で手軽に用意できるHyper-V対VMware Player(6.0.2)で。

実験に使うハードは、またも5月の連休中に組み立てたAthlon5350 + AM1H-ITXマシン。マシンパワー的に相応しくない気もしますが、新しいマシンの方が楽しいので
ここでHyper-Vを無効化したと書きましたが、実験のため、Hyper-Vを使うときだけまた有効化しました。ただHyper-Vを有効化していると今度はVMware Playerを起動できなくなるので、VMware Playerを使うときはまた無効化。

また速い/遅いの判定基準ですが、まあ私的に実用上の差を見る意味で、linuxのバニラカーネル3.15.1を素のコンフィグでビルドしたときの時間を測定してみました。

で詳細は飛ばしていきなり結果。

まずHyper-V。

~/work/linux-3.15.1>$ time make -j4
: 
real    84m10.340s
user    271m56.747s
sys     34m3.999s

 

続いてVMware Player。

~/work/linux-3.15.1>$ time make -j4
: 
real    94m50.176s
user    299m46.037s
sys     41m29.439s

 

うーん、まあ確かに10%くらいHyper-Vの方が早いような…。でも僅差。

大量のソースファイルをコンパイルしたので、たぶんディスクI/Oが大量に発生したと思います。ディスクI/Oはハイパーバイザ型の方が有利らしいので、その分Hyper-Vの方が速かったのかも。

ハイパーバイザ型とホスト型の比較にHyper-VとVMware Playerが相応しいかは微妙ですが、少なくとも今回はHyper-V上のVMの方が速いという結果になりました。

しかし絶対値としては、このハード上ではやっぱり両方とも思いきり遅いですね…。

一応CPU使用率を見てる限り、CPUが無駄に遊んでいた等は無いように思うのですが。

am1h-hyperV-perfmon-2

そうなると、今度はネイティブマシンの速度と比べてどうなのか知りたくなります。しかし、あいにくこのPCにはWindowsしかインストールしてません。

一方メインマシンになら入っている(Ubuntu 12.04 Desktop)ので、参考までにCore i5-3550(4core、3.3GHz)のメインマシン上で比較してみました。

まずHyper-V。

 
real    30m38.675s
user    82m40.282s
sys     9m8.921s

 

続いてネイティブ。

 
real    15m34.999s
user    47m57.692s
sys     3m33.793s

 

Hyper-Vの結果も、Athlon5350 + AM1H-ITXマシンに比べれば2.8倍も速いのですが、ネイティブマシンはさらにその倍速い。ディスクI/Oが多いせいか、こんなにも大差がつくとは思いませんでした。あ言い忘れましたが、ここに書いたネイティブマシンとバーチャルマシンは全てSSDではなくHDD上に置いています。

少なくともカーネルのビルドのような仕事には、仮想化使わず素直にネイティブマシンを使った方が、かなりの時間節約になりそうでした。

-Ubuntu, Windows

関連記事

metaWeblog.newMediaObject メソッドへの応答が無効です

ブログの執筆にWindows Live Writerを使っています。 この記事を投稿しようとしたら、 「ブログサーバーから受信した metaWeblog.newMediaObject メソッドへの応答 …

Cygwin上でiperfをビルド

ネットワークの疎通確認に便利なツールiperf。 先日Windows上で使おうと思ったら、見つからなくて困ったことがありました。 iperfのWindows版バイナリも配布されているらしいですが、私は …

Hyper-VでUbuntu 14.04を試す(1)

ついにリリースされました、Ubuntu 14.04。 実験用にインストールした13.10はともかく、実用に使っていた12.04マシンの調子が最近悪くて。インストールし直したかったけど、あと少しで14. …

Windows 8.1上でHyper-Vを試す ~Ubuntuの仮想マシンを作る(1)~

Linuxのカーネルソースをあれこれいじるにあたって、実験用のLinux環境が欲しくなり、新たにUbuntuの仮想マシンを作ることにしました。 で仮想化ソフトに何使うか考えたのですが、自宅ではWind …

OOM Killerの発動を検知したい

今回はプログラムの話。タイトル通り、LinuxのOOM Killerが発動したことを検知したいという話です。組み込みでLinuxを使っていると、OOM Killerが動き出すこと自体異常事態なので、検 …