VirtualBox 2.0でUnix Benchしてみた
なりゆき
先日、VirtualBox 2.0 がリリースされました。VirtualBoxは以前から愛用していたのですが、2.0になって描画速度が 体感で速くなって喜んでいます。
2.0の新機能のうち、気になったのが、64bitゲスト対応と、Nested Pagingへの対応です。Nested Pagingは、Phenomや最近の Opteronに搭載されている第二世代の仮想化支援機能で、Virtual Boxのサイトにも"(major performance gain)"とかかれているので 非常に気になるのですが、あいにく私が自宅で使っているマシンのCPUは古いAthlon 64 X2なので対応していません。とりあえず、 1.6(AMD-V有効)と2.0の32bit(AMD-V有効/無効)、64bit(AMD-V有効)で、ベンチマークを取ってみることにしました。
ベンチマークについて
仮想化でパフォーマンスが気になるのは、I/Oとプロセスまわりなのですが、今回はプロセスまわりをベンチマークしてみることにしました。
ベンチマークソフトにはUnix Bench 4.1を利用し、ベンチマークのオプションは、./Run -1 execl pipe context1 spawn shell syscall
のようにしました。ベンチマークを取った環境は、
CPU: Athlon 64 X2 5000+ (2.6GHz) メモリ: DDR2-800 6GB ホストOS: WindowsXP Professional 64bit Edition ゲストOS: Ubuntu Linux 8.04 i386/amd64 比較対象OS: Ubuntu Linux 8.04 amd64 (Wubiインストール)
になります。普段自宅でつかっている環境で、大体の傾向を調べたいだけなのでベンチマーク用に安定した環境を作って無いので、 テストの誤差は大きいと思いますが、ご容赦ください。
ベンチマーク結果
Ubuntu 64bit on Wubi
INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput 43.0 3094.1 719.6 Pipe Throughput 12440.0 1091253.2 877.2 Pipe-based Context Switching 4000.0 275380.5 688.5 Process Creation 126.0 10806.6 857.7 Shell Scripts (8 concurrent) 6.0 842.0 1403.3 System Call Overhead 15000.0 2170821.4 1447.2 ========= FINAL SCORE 954.6
Ubuntu 64bit on VirtualBox 2.0 (AMD-V on)
INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput 43.0 384.6 89.4 Pipe Throughput 12440.0 1803972.5 1450.1 Pipe-based Context Switching 4000.0 51086.2 127.7 Process Creation 126.0 908.9 72.1 Shell Scripts (8 concurrent) 6.0 121.0 201.7 System Call Overhead 15000.0 2522465.7 1681.6 ========= FINAL SCORE 272.0
Ubuntu 32bit on VirtualBox 2.0 (AMD-V on)
INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput 43.0 209.8 48.8 Pipe Throughput 12440.0 49710.4 40.0 Pipe-based Context Switching 4000.0 11908.5 29.8 Process Creation 126.0 623.0 49.4 Shell Scripts (8 concurrent) 6.0 80.0 133.3 System Call Overhead 15000.0 2327276.3 1551.5 ========= FINAL SCORE 91.7
Ubuntu 32bit on VirtualBox 1.6.6 (AMD-V on)
INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput 43.0 254.3 59.1 Pipe Throughput 12440.0 48507.9 39.0 Pipe-based Context Switching 4000.0 10463.6 26.2 Process Creation 126.0 575.5 45.7 Shell Scripts (8 concurrent) 6.0 75.0 125.0 System Call Overhead 15000.0 2266484.1 1511.0 ========= FINAL SCORE 89.7
Ubuntu 32bit on VirtualBox 2.0 (AMD-V off)
INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput 43.0 223.3 51.9 Pipe Throughput 12440.0 47751.2 38.4 Pipe-based Context Switching 4000.0 6895.9 17.2 Process Creation 126.0 495.3 39.3 Shell Scripts (8 concurrent) 6.0 69.0 115.0 System Call Overhead 15000.0 221690.9 147.8 ========= FINAL SCORE 53.3
感想
以前からconfigureが遅いなーとは思ってたのですが、ベンチマーク結果をみると、こんなに遅かったんだと 少しびっくりしました。でも、VirtualBox 2.0から利用できる64bitゲストでは、32bitゲストよりも大分 マシな性能がでるようになったので、これからは64bitゲストを常用しようと思います。
また、AMD-Vのon/offでこれだけ性能差があるのを見ると、AMD-V機能付きのCPU持っていて 良かったと思う半面、さらに早くなると言われているPhenomが欲しくなって来ました。 しばらく物欲と戦う日々が続きそうです。