Vagrant + Core OS + docker-compose

docker

概要

  • boot2docker + docker-composeでホストOSののファイルシステムをマウントしたところ、すごく重いので、
  • Vagrant + Core OS + docker-composeにしてみた。
  • ついでに、ベンチマークもとってみました。
  • ベンチマークは、% dbbench 4コマンドで行いました。(1回10分かかります)
    • ディスク:APPLE SSD SM0512F Media

ベンチマーク内容

boot2docker container file system

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX     577918     0.236   134.954
 Close         424536     0.115    51.865
 Rename         24460     0.534    49.595
 Unlink        116657     0.463   133.928
 Deltree           16    10.550    42.714
 Mkdir              8     0.079     0.153
 Qpathinfo     523842     0.168    90.023
 Qfileinfo      91866     0.117    43.895
 Qfsinfo        95976     0.195    91.965
 Sfileinfo      47064     0.373   144.815
 Find          202459     0.199    45.888
 WriteX        288380     0.288    96.877
 ReadX         905642     0.127   350.554
 LockX           1884     0.050     8.381
 UnlockX         1884     0.117    36.129
 Flush          40486    17.493   538.779

Throughput 30.1989 MB/sec  4 clients  4 procs  max_latency=539.087 ms

boot2docker container mount FS.

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX      22882    42.118  1403.164
 Close          16734     2.903   172.245
 Rename           966    79.413   532.418
 Unlink          4714    30.432  1309.666
 Qpathinfo      20633    22.221  1145.030
 Qfileinfo       3549     2.625   189.255
 Qfsinfo         3811     4.645   123.918
 Sfileinfo       1902    29.595   303.404
 Find            7967    47.080   385.768
 WriteX         11228     5.105   152.099
 ReadX          35198     4.028   156.998
 LockX             72     0.075     1.783
 UnlockX           72     0.034     0.224
 Flush           1644     0.161    48.173

Throughput 1.16189 MB/sec  4 clients  4 procs  max_latency=1403.268 ms

Vagrant + Core OS + container file system

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX    3080745     0.021    88.055
 Close        2263045     0.001    10.429
 Rename        130446     0.050    38.538
 Unlink        622126     0.049    95.054
 Deltree           80     2.252    15.547
 Mkdir             40     0.002     0.017
 Qpathinfo    2792341     0.005    58.912
 Qfileinfo     489401     0.001     6.665
 Qfsinfo       512005     0.002     5.374
 Sfileinfo     250951     0.161    42.271
 Find         1079605     0.017    15.224
 WriteX       1536354     0.022    64.048
 ReadX        4828893     0.004    22.103
 LockX          10030     0.003     5.337
 UnlockX        10030     0.001     1.674
 Flush         215920     9.880   153.907

Throughput 161.082 MB/sec  4 clients  4 procs  max_latency=153.910 ms

Vagrant + Core OS + container mount file system

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX    1052858     0.959   299.335
 Close         773373     0.303   301.123
 Rename         44579     1.731    69.077
 Unlink        212595     0.665    49.638
 Deltree           24    35.710    95.080
 Mkdir             12     0.480     0.811
 Qpathinfo     954354     0.336   303.192
 Qfileinfo     167168     0.346    26.187
 Qfsinfo       174935     0.463    43.445
 Sfileinfo      85764     0.475    19.563
 Find          368931     0.955   302.416
 WriteX        524405     0.013    26.680
 ReadX        1650314     0.006    20.807
 LockX           3428     0.456    10.404
 UnlockX         3428     0.003     0.289
 Flush          73791     0.678    28.926

Throughput 55.0096 MB/sec  4 clients  4 procs  max_latency=303.719 ms

ベンチマークまとめ

  • なんとか、実用に耐えうるような速度になりました。
  • なぜかcontainer内のファイルシステムは値が異なる。。。
    • boot2docker = Vagrant + CoreOS だと思っていたけど、違うのか??
  • Vagrant + Core OS + docker-composeのコードはこちら。https://github.com/matsubo/coreos-vagrant
    • % vagrant upするだけで、container内にnginxが立ち上がり、80番ポートで参照できます。
Screenshot_4_9_15__15_08

コメント