2014/05/03

ParallelsでVagrantを使ってみる + てきとうなベンチマーク

Parallels Desktop 9 for MacでVagrantを使うためのプラグインVagrant Parallels Providerがあるので、Parallelsのトライアル版で試してみました。

導入

Vagrant Parallelsプラグインを入れるには、次のコマンドを実行するだけです。

vagrant plugin install vagrant-parallels

試しに、このプラグインを使ってUbuntu–14.04を起動してみましょう。Parallels用のBoxを選択してinitしてから、--provider=parallelsを付けてvagrant upするだけです。

mkdir vagrant_parallels
cd vagrant_parallels
vagrant init parallels/ubuntu-14.04
vagrant up --provider=parallels

2回め以降は--provider=parallelsは不要っぽいです。 なお、これ以外のParallels向けのboxは次の場所から検索できます。

なお、Vagrant Parallelsプラグインでのvagrant操作はポートフォワーディングの設定ができない以外はすべてのことはできるようです。

ポートフォワーディングはParallelsのコマンドラインインタフェースのprlctlからも操作できないですし、Parallels自体がバージョンアップしないと駄目っぽいです。

ベンチマーク

無駄にunixbenchでベンチマークをParallelsとVirtualBoxとで採ってみました。

同じBoxを用いていないので微妙ですが、どちらもubuntu–14.04にしています。

  • parallels/ubuntu–14.04
  • wmit/trusty64

基本的な設定はそのままで、CPUとメモリについては1 CPU, 512 MBに揃えました。vagrant ssh後に、次のコマンドを実行しただけです。

export LC_ALL=C && wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz && tar zxvf UnixBench5.1.3.tgz && cd UnixBench && make && ./Run

なお、次のようなバージョンでParallelsとVirtualBoxを用いました。

  • Parallels - Build 9.0.24229 (Revision 991745; Tuesday, April 1, 2014)
  • VirtualBox - Version 4.3.10 r93012

単純に結果を比較すると、スコアはParallelsが1160.4でVirtualBoxが1034.6となり、Parallelsのほうが1割ほどスコアがよくなりました。

とは言え、体感ではあまり違いは感じられないので、わざわざ購入するまでの価値はないでしょう。

Parallels (parallels/ubuntu–14.04)

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: trusty64: GNU/Linux
   OS: GNU/Linux -- 3.13.0-24-generic -- #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (5200.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   11:54:33 up 0 min,  1 user,  load average: 0.41, 0.10, 0.03; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Thu May 01 2014 11:54:33 - 12:22:53
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       38241439.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4315.8 MWIPS (11.3 s, 7 samples)
Execl Throughput                               4192.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        540340.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          147524.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1612398.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              891976.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 234407.9 lps   (10.0 s, 7 samples)
Process Creation                              11038.1 lps   (31.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8956.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1164.0 lpm   (60.0 s, 2 samples)
System Call Overhead                         699493.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   38241439.2   3276.9
Double-Precision Whetstone                       55.0       4315.8    784.7
Execl Throughput                                 43.0       4192.4    975.0
File Copy 1024 bufsize 2000 maxblocks          3960.0     540340.3   1364.5
File Copy 256 bufsize 500 maxblocks            1655.0     147524.4    891.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    1612398.5   2780.0
Pipe Throughput                               12440.0     891976.7    717.0
Pipe-based Context Switching                   4000.0     234407.9    586.0
Process Creation                                126.0      11038.1    876.0
Shell Scripts (1 concurrent)                     42.4       8956.4   2112.4
Shell Scripts (8 concurrent)                      6.0       1164.0   1940.0
System Call Overhead                          15000.0     699493.7    466.3
                                                                   ========
System Benchmarks Index Score                                        1160.4

VirtualBox (wmit/trusty64)

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: trusty64: GNU/Linux
   OS: GNU/Linux -- 3.13.0-24-generic -- #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (5131.1 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   23:30:10 up 0 min,  1 user,  load average: 0.31, 0.08, 0.03; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Wed Apr 30 2014 23:30:10 - 23:58:50
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       37778651.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4048.0 MWIPS (12.6 s, 7 samples)
Execl Throughput                               3589.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        371144.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          101348.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1273696.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              923386.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 230234.9 lps   (10.0 s, 7 samples)
Process Creation                              11077.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8191.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1102.2 lpm   (60.0 s, 2 samples)
System Call Overhead                         675036.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   37778651.3   3237.2
Double-Precision Whetstone                       55.0       4048.0    736.0
Execl Throughput                                 43.0       3589.3    834.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     371144.7    937.2
File Copy 256 bufsize 500 maxblocks            1655.0     101348.9    612.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    1273696.1   2196.0
Pipe Throughput                               12440.0     923386.9    742.3
Pipe-based Context Switching                   4000.0     230234.9    575.6
Process Creation                                126.0      11077.0    879.1
Shell Scripts (1 concurrent)                     42.4       8191.9   1932.0
Shell Scripts (8 concurrent)                      6.0       1102.2   1837.0
System Call Overhead                          15000.0     675036.0    450.0
                                                                   ========
System Benchmarks Index Score                                        1034.6

起動時間 (参考)

boxが違うので単純比較しても意味ないですけど。

vagrant up  3.05s user 1.46s system 19% cpu 23.703 total
vagrant up  3.07s user 1.43s system 18% cpu 23.902 total
vagrant up  3.05s user 1.43s system 18% cpu 23.739 total

vagrant up --provider=parallels  4.55s user 2.87s system 40% cpu 18.179 total
vagrant up --provider=parallels  4.29s user 2.59s system 43% cpu 15.909 total
vagrant up --provider=parallels  4.29s user 2.64s system 41% cpu 16.718 total

関連リンク

2 件のコメント:

  1. ポートフォワードに関しては、

    https://github.com/Parallels/vagrant-parallels/issues/29#issuecomment-29383171

    「環境設定」->「詳細」->「ネットワーク:設定の変更」から手作業では出来るのですが、毎回設定し直さないとならないのと、設定したらリロードする必要があったりと面倒ですね。

    返信削除
  2. 情報ありがとうございます。

    そんなところにあったんですね…。VirtualBoxみたいにマシンごとの設定にあるのかと思っていました。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。