エンジョイ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

関連記事

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

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

Windowsバッチファイルの処理を一時停止させる sleep コマンド

先日Windowsのバッチファイルを使っていて、不便だなと感じたことがありました。 ある実験をしていて、Windows PCから自動的に繰り返し繰り返し操作を加えていたのですが、ある操作と操作の間にポ …

Ubuntu 14.04 64bitで32bitアプリを使う

新たにVMを作ってUbuntu 12.04から14.04に乗り換えたわけですが、セットアップしていて最初に困ったのは、12.04で使っていた32bitアプリを14.04上で動かそうとしたとき。 Ubu …

Windows 8.1上でHyper-Vを試す ~ネットワークがつながらない~

前回、Hyper-V上の仮想マシンにUbuntuをインストールしたところまで書きました。 インストールが完了して、さっそく仮想マシンにSSHからログインしてあれこれ設定しようとしました。しかし、 SS …

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

前回、空の仮想マシンを作るところまで書きました。 (なんか長かった…)。 続いてUbuntuを仮想マシンにインストールします。 Ubuntuのインストールを開始するには、まずHyper-Vマネージャー …