Performance

Performance

OSX

Setup Native (out of the box) Docker-Sync
Unison native_osx
Docker Toolbox - VMware Fusion 12.31s 0.24s n/a (issue)
Docker Toolbox - VirtualBox 3.37s 0.26s n/a (issue)
Docker for Mac 20.55s 0.36s 0.28s
Docker for Mac Edge 18.12s 0.27s 0.19s
Docker for Mac Edge + APFS 18.15s 0.38s 0.37s
Docker for Mac Edge :cached 17.65s 0.21s 0.22s

Setup and details below at Performance Tests 2017.

Windows

Coming soon.

Linux

Coming soon.


Performance Tests 2017

Results

Test: writing 100MB

Setup Native (out of the box) Docker-Sync
Unison native_osx
Docker Toolbox - VMware Fusion 8.70s 0.22s n/a (issue)
Docker Toolbox - VirtualBox 3.37s 0.26s n/a (issue)
Docker for Mac 18.85s 0.24s 0.28s
Docker for Mac Edge 18.12s 0.27s 0.19s
Docker for Mac Edge :cached 17.65s 0.21s 0.22s

Those below is how the tests were made and how to reproduce them:

Setup

Test-hardware

  • i76600u
  • 16GB
  • SSD
  • Sierra

Docker Toolbox VMware Fusion machine:

docker-machine create --driver vmwarefusion --vmwarefusion-cpu-count 2 --vmwarefusion-disk-size 50000 --vmwarefusion-memory-size 8000 default

Docker for Mac

  • 8GB
  • CPUs

Native implementations

Those tests run without docker-sync or anything, just plain what you get out of the box.

VirtualBox - Native

docker-machine create --driver virtualbox --virtualbox-cpu-count 2 --virtualbox-disk-size 20000 --virtualbox-memory "8000" vbox
docker run -it -v /Users/em/test:/var/www alpine time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 3.37s
user  0m 0.00s
sys 0m 2.09s

3.37s

VMware Fusion - Native

docker run -it -v /Users/em/test:/var/www alpine time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 12.32s
user  0m 0.14s
sys 0m 2.22s

12.31s

Docker for Mac - Native

  • 8GB Ram
  • 2 CPUs
docker run -it -v /Users/em/test:/var/www alpine time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 18.85s
user  0m 0.11s
sys 0m 1.06s

20.55s

Docker-sync - Strategy: Native_osx

Get this repo and this boilerplate project

git clone https://github.com/EugenMayer/docker-sync-boilerplate
cd docker-sync-boilerplate/default
docker-sync-stack start

Vmware Fusion

docker exec -it nativeosx_app-unison_1 time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 0.32s
user  0m 0.02s
sys 0m 0.24s

0.32s

Docker for Mac

docker exec -it nativeosx_app-unison_1 time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 0.28s
user  0m 0.02s
sys 0m 0.25s

0.26s

Docker-Sync - Strategy: Unison

Get this repo and this boilerplate project

git clone https://github.com/EugenMayer/docker-sync-boilerplate
cd docker-sync-boilerplate/unison
docker-sync-stack start

VirtualBox

docker exec -it unison_app-unison_1 time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 0.26s
user  0m 0.00s
sys 0m 0.23s

VMware Fusion

docker exec -it unison_app-unison_1 time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 0.24s
user  0m 0.01s
sys 0m 0.23s

Docker for Mac

docker exec -it unison_app-unison_1 time dd if=/dev/zero of=/var/www/test.dat bs=1024 count=100000
100000+0 records in
100000+0 records out
real  0m 0.24s
user  0m 0.04s
sys 0m 0.16s

0.36s