VMware Player vs. VirtualBox ( unixbench )
2015/12/13
※ Virtual Box 5が出た頃、計測しなおしてみましたが、最近はそんなこともなくむしろVirtual Boxの方がいくらか速かったです。
複数の環境、複数のゲストで確認しましたがいずれもその様な結果になりました。
NATの違い(ホストと通信できるかどうか)はありますが、VMwareの最近の動向もありますのでVirtual Boxを選択するのもアリですね。
(同一バージョンの UNIX Benchと、crystal disk markでのみ比較。Ubuntuが快適かどうかは確認してません。)
これまで個人的に体感パフォーマンスはVMwareの方が上だと思っていたのでVMware Playerでいろいろ検証とか練習とかしていたんですが、ライセンス解釈が変わっていろいろやりにくくなってきたので 可能ならば VirtualBoxに乗り換えることも視野に入れてもうちょっと真面目に比較してみました。 比較方法は、 ざっくりとした OSインストール時間と unixbench でのスコアの比較です。
何かを保証するものではありませんが、参考程度にどうぞ。
VirtualBoxが重かったのはグラフィックのせい?
とりあえず VirtualBoxはグラフィック系に難があり、Ubuntu13はデフォルトだとWinでもMacでもUnityが使い物になりません。 GuestAdditions を入れればMacでは問題なく使えそうなレベルで、VMware Fusionにも迫ってましたがでもまだもたつきが残ります。 Windows(少なくとも今回ためした端末)では GuestAdditions入れても改善したものの使う気にはならないままです。
ちなみにCentOS 5.6だとUnityの時の様に使えないほど重いという事はないです。というか普通に使えると思います。 Ubuntu13でもlxdeにすれば使えるレベル。 Unityに関してはOpenGLががっつりかかわってくるので、そのあたりが原因なんでしょう。
そんなのも手伝って、VirtualBoxはスナップショットが使えるという魅力がありながらも使っていませんでしたが、 CUI(tty1)にしてみたら思ったほど遅くなかったのでいい機会だからベンチ取ってみることに。
体感速度
ベンチとは別に Ubuntuを入れ比べたりしていたんですが、どうもグラフィック以外に仮想ディスクの性能にも差がありそうな感触。 VirtualBoxでのOSインストール時間は大体 VMwareの 3割増~5割増という印象です。
ざっくりとしたOSインストール時間の比較は以下の通り
- iMac + VirtualBox 4.2 + Ubuntu 13.04 = 15min.
- iMac + VMware Fusion 6 + Ubuntu 13.04 = 8min.
- Win7 + VirtualBox 4.2 + Ubuntu 13.04 = 30min.
- Win7 + VMware Player 4 + Ubuntu 13.04 = 20min.
- Win7 + VirtualBox 4.2 + CentOS 5.6 = 20min.
- Win7 + VMware Player 4 + CentOS 5.6 = 15min.
unixbench
グラフィック系はベンチとれませんが、ディスクアクセスなどの比較はできると思い、ちょっとベンチとってみました。 環境は
ホスト
Window 7 Pro 32bit
Dell Inspiron 9400
CPU: Core Duo T2500 (2.0GHz, 2core)
Mem: 2GB
GPU: geForce GO 9700 (256MB)`
ゲスト
Cent OS 5.6 32bit
CPU: 1 Core
Mem: 512MB
HDD: VBOX SATA 40GB VDI形式 / VMware SCSI 40GB VMDK形式
その他はデフォルト
GuestAdditions / VMware-tools もインストールしていない。
SATAとかSCSIとかは仮想ディスクの接続の話です。ホスト上の仮想ディスクファイルは同じ内臓SATA1 ディスク上にあります。
仮想マシンソフトウェア インストール・起動状態
VMware Player, VirtualBox 同居状態(ベンチ前にもう一方をアンインストールとかはしていない)。
対象のみ起動して、もう一方はアプリケーションを終了させておく(VMware Player使ってるときは、VirtulBoxはコンソールも含め終了させている。逆も同じ。)
unixbench インストール
CentOS 5.6は オフィス系・グラフィック・ゲームは除外して、SELinuxも無効化した状態でインストールしました。
インストール後は rootにて
# yum -y install libXext-devel
# yum -y install freeglut freeglut-devel
(# yum -y install perl-Time-HiRes <- 入ってるので不要)
# yum -y install gcc
した後、適当なディレクトリで
# http://www.hermit.org/Linux/Benchmarking/unixbench-5.1.2.tar.gz
# tar xvzf unixbench-5.1.2.tar.gz
# cd unixbench-5.1.2
# make
# ./Run
で実行しています。
結果
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.2 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
December 22, 2007 johantheghost at yahoo period com
VMware
========================================================================
BYTE UNIX Benchmarks (Version 5.1.2)
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 2.6.18-238.el5 -- #1 SMP Thu Jan 13 16:24:47 EST 2011
Machine: i686 (i386)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Genuine Intel(R) CPU T2500 @ 2.00GHz (3990.0 bogomips)
MMX, Physical Address Ext
09:15:47 up 49 min, 2 users, load average: 0.31, 0.52, 0.25; runlevel 5
------------------------------------------------------------------------
Benchmark Run: 木 10月 10 2013 09:15:47 - 09:43:47
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 6648879.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1756.6 MWIPS (10.3 s, 7 samples)
Execl Throughput 1063.2 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 205266.1 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 58344.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 545554.4 KBps (30.0 s, 2 samples)
Pipe Throughput 334028.8 lps (10.0 s, 7 samples)
Pipe-based Context Switching 38659.3 lps (10.0 s, 7 samples)
Process Creation 1848.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 1282.3 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 198.3 lpm (60.1 s, 2 samples)
System Call Overhead 239533.5 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 6648879.3 569.7
Double-Precision Whetstone 55.0 1756.6 319.4
Execl Throughput 43.0 1063.2 247.3
File Copy 1024 bufsize 2000 maxblocks 3960.0 205266.1 518.3
File Copy 256 bufsize 500 maxblocks 1655.0 58344.0 352.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 545554.4 940.6
Pipe Throughput 12440.0 334028.8 268.5
Pipe-based Context Switching 4000.0 38659.3 96.6
Process Creation 126.0 1848.0 146.7
Shell Scripts (1 concurrent) 42.4 1282.3 302.4
Shell Scripts (8 concurrent) 6.0 198.3 330.5
System Call Overhead 15000.0 239533.5 159.7
========
System Benchmarks Index Score 296.9
VirtualBox
========================================================================
BYTE UNIX Benchmarks (Version 5.1.2)
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 2.6.18-238.el5 -- #1 SMP Thu Jan 13 16:24:47 EST 2011
Machine: i686 (i386)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Genuine Intel(R) CPU T2500 @ 2.00GHz (857.8 bogomips)
MMX, Physical Address Ext
23:13:27 up 17 min, 2 users, load average: 0.65, 0.76, 0.55; runlevel 5
------------------------------------------------------------------------
Benchmark Run: 水 10月 09 2013 23:13:27 - 23:41:46
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 6114583.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1643.9 MWIPS (10.3 s, 7 samples)
Execl Throughput 371.6 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 107712.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 29319.3 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 320924.8 KBps (30.0 s, 2 samples)
Pipe Throughput 166299.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 5692.4 lps (10.0 s, 7 samples)
Process Creation 634.4 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 570.9 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 76.2 lpm (60.3 s, 2 samples)
System Call Overhead 105341.1 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 6114583.3 524.0
Double-Precision Whetstone 55.0 1643.9 298.9
Execl Throughput 43.0 371.6 86.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 107712.5 272.0
File Copy 256 bufsize 500 maxblocks 1655.0 29319.3 177.2
File Copy 4096 bufsize 8000 maxblocks 5800.0 320924.8 553.3
Pipe Throughput 12440.0 166299.5 133.7
Pipe-based Context Switching 4000.0 5692.4 14.2
Process Creation 126.0 634.4 50.3
Shell Scripts (1 concurrent) 42.4 570.9 134.6
Shell Scripts (8 concurrent) 6.0 76.2 127.0
System Call Overhead 15000.0 105341.1 70.2
========
System Benchmarks Index Score 136.4
まだ自分でも詳しく見てないですが VMwareが2倍ぐらい数値大きいですね。 パッと見FileCopyなんかは単位KBpsですから大きい方がいいんでしょう。 ただ、ベンチ取りは CentOSのGUIから端末起動して実行してましたが、その程度の操作であれば VirtualBoxでもGUIが重いって感じる事はなかったです。 過去に私が感じた耐えられない重さはUnityだったからかもしれません。
まとめ
ベンチ結果的にはやはりWindows上の VirtualBoxはディスク性能に難があるようです(VMware Playerと比べて)。 グラフィックの方は工夫しようがありますが、ディスクの方はサーバー機にした場合でももろに影響がでる部分ですのでパフォーマンスアップが望まれるところです。
個人用途で Unityなど使いたい場合、ディスクパフォーマンスが求められる場合はVMwareの方が良いでしょう。 ライセンスが気になる用途での場合はパフォーマンスが落ちますが VirtualBoxを使うか、VMware Player Plusや VMware Fusion Proを購入してもらう、 お金出すぐらいならいっそ実機 1台買ってKVMやXenServerという手もありますね。
あくまで数字上の話ですがベンチマークスコアが2倍以上ついてるとちょっと考えちゃいますね。まぁスコアは基準値からの相対値ですし総合評価だけで安易に判断すべきではないのですが・・・。
Macであれば VirtualBoxでもパフォーマンス的にも問題にならないレベルと思います。ディスクは高いの(PCIeのSSDとか)つけてればカバーできますし。 私は今回の調査のついでに Fusion 6 買っちゃったしMac上ではFusion使おうかな。 昔Fusion 3使ってて、パフォーマンスに問題ないのは知っているので。
最近のコメント