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使ってて、パフォーマンスに問題ないのは知っているので。

  • VMware Player vs. VirtualBox ( unixbench ) はコメントを受け付けていません。
コメントは閉じられています。

return top