VMWareFusionとVirtualBoxで、UnixBenchを使って性能比較してみた

MacMiniを仮想環境のホストOSとして使うべく、VirtualBoxとVMWareFusionで、性能比較してみた。

性能比較するために、以下で紹介されていたUnixBenchを使ってみた。

参考:Linuxの性能をチェックするunixbenchの使い方:なんとなしの日記

環境は以下のとおり。

このテスト、"running 1 parallel copies of tests"、"running 2 parallel copies of tests"と、単体実行と並列実行の2つのテストがされるようである。

まず、単体実行の方。

テスト項目 VMWare VirtualBox 勝利
Dhrystone 2 using register variables 2717.8 2728.8 VMWare
Double-Precision Whetstone 624.4 615.3 VMWare
Execl Throughput 587.1 487.0 VMWare
File Copy 1024 bufsize 2000 maxblocks 1619.4 1586.9 VMWare
File Copy 256 bufsize 500 maxblocks 1135.3 1100.1 VMWare
File Copy 4096 bufsize 8000 maxblocks 2799.9 2955.6 VirtualBox
Pipe Throughput 1094.1 1141.9 VirtualBox
Pipe-based Context Switching 609.8 23.5 VMWare
Process Creation 476.9 398.4 VMWare
Shell Scripts (1 concurrent) 1130.5 999.9 VMWare
Shell Scripts (8 concurrent) 1612.0 1482.0 VMWare
System Call Overhead 1510.6 1464.4 VMWare
○System Benchmarks Index Score 1133.4 823.9 VMWare

一番下の総合点を見ると、VMWareがだいたい優っている。Pipe-based ContextSwitchingに至っては、VirtualBoxでは苦手としているようである。

次に、2 parallelの方。

テスト項目 VMWare VirtualBox 勝利
Dhrystone 2 using register variables 4226.9 4815.9 VirtualBox
Double-Precision Whetstone 1140.0 1122.2 VirtualBox
Execl Throughput 1403.8 1181.3 VMWare
File Copy 1024 bufsize 2000 maxblocks 2048.6 2054.8 VirtualBox
File Copy 256 bufsize 500 maxblocks 1237.7 1454.8 VirtualBox
File Copy 4096 bufsize 8000 maxblocks 3622.4 3947.5 VirtualBox
Pipe Throughput 1614.8 2002.9 VirtualBox
Pipe-based Context Switching 852.0 828.3 VMWare
Process Creation 1302.9 1302.1 VMWare
Shell Scripts (1 concurrent) 1755.3 1628.6 VMWare
Shell Scripts (8 concurrent) 1479.4 1527.1 VirtualBox
System Call Overhead 2205.6 2388.8 VirtualBox
○System Benchmarks Index Score 1712.9 1773.3 VirtualBox

今度はVirtualBoxが勝っているじゃないか。

ただちょっと引っかかるところが。情報欄を見ると、VMWareVirtualBoxで違いがある。

  • VMWareFusion 5
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 2.6.32-279.el6.x86_64 -- #1 SMP Fri Jun 22 12:19:21 UTC 2012
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (4787.4 bogomips)
       x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 1: Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (4787.4 bogomips)
       x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
20:06:43 up 1 min,  2 users,  load average: 1.10, 0.55, 0.20; runlevel 5
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 2.6.32-279.el6.x86_64 -- #1 SMP Fri Jun 22 12:19:21 UTC 2012
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (4799.7 bogomips)
       Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 1: Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (4799.7 bogomips)
       Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
14:08:29 up 1 min,  2 users,  load average: 0.76, 0.27, 0.09; runlevel 5

なんと、同じ2Processer設定だが、VirtualBoxではHyper-Threadingとして認識している。
OS上からは2CPUで変わらないと思うのだが、実はなんか違ったらどうしよう。

という訳で、VMWareVirtualBoxの大きな違いはそこまで見られなかったため、自分はMacMiniで非GUI環境で使う仮想マシンとしては、VirtualBoxを使うことにする。VMWareFusionは設定が簡素化されすぎていて、VirtualBoxの方がNATのポートフォワーディングなど色々設定でき、自分のような用途ではVirtualBoxの方が良さそうである。