Docker Linux OS Image Performance Comparison

Ubuntu 16.10 host (bare metal) running Docker 1.12, compared to launching stock Docker images of Ubuntu, Clear Linux, CentOS, Debian, and Alpine Linux. Tests by Michael Larabel for a future article on Phoronix.

HTML result view exported from: https://openbenchmarking.org/result/1611222-TA-DOCKER74373&sor&grt.

Docker Linux OS Image Performance ComparisonProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionSystem LayerVulkanBare Metal HostubuntuclearlinuxcentosdebianalpineIntel Core i7-6800K @ 3.80GHz (12 Cores)MSI X99A WORKSTATION (MS-7A54) v1.0Intel Xeon E7 v4/Xeon16384MB120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150NVIDIA GeForce GTX TITAN X 12258MBRealtek ALC1150ASUS PB278Intel ConnectionUbuntu 16.104.8.0-27-generic (x86_64)Unity 7.5.0X Server 1.18.4nouveau 1.0.123.3 Mesa 12.0.3 Gallium 0.4GCC 6.2.0 20161005ext42560x144012288MBUbuntu 16.04.1 LTSGCC 5.4.0 20160609aufsdockerClear Linux 116601.0.3GCC 6.2.0 + Clang 3.9.0 + LLVM 3.9.0CentOS Linux 7GCC 4.8.5 20150623Debian GNU/Linux 8GCC 4.9.2Alpine Linux v3.4 3.4.4GNOME ShellWayland Weston + SurfaceFlinger + GNOME Shell WaylandGCC 5.3.0AuFSOpenBenchmarking.orgCompiler Details- Bare Metal Host: --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-tune=generic -v - ubuntu: --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-tune=generic -v - clearlinux: --build=x86_64-generic-linux --disable-libunwind-exceptions --disable-multiarch --disable-vtable-verify --enable-__cxa_atexit --enable-bootstrap --enable-clocale=gnu --enable-gnu-indirect-function --enable-languages=c,c++,fortran,go --enable-ld=default --enable-libmpx --enable-libstdcxx-pch --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --exec-prefix=/usr --includedir=/usr/include --target=x86_64-generic-linux --with-arch=westmere --with-glibc-version=2.19 --with-gnu-ld --with-isl --with-ppl=yes --with-tune=haswell - centos: --build=x86_64-redhat-linux --disable-libgcj --disable-libunwind-exceptions --enable-__cxa_atexit --enable-bootstrap --enable-checking=release --enable-gnu-indirect-function --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-shared --enable-threads=posix --mandir=/usr/share/man --with-arch_32=x86-64 --with-linker-hash-style=gnu --with-tune=generic - debian: --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i586 --with-arch-directory=amd64 --with-multilib-list=m32,m64,mx32 --with-tune=generic -v - alpine: --build=x86_64-alpine-linux-musl --disable-fixed-point --disable-libmudflap --disable-libsanitizer --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-nls --disable-symvers --disable-werror --enable-__cxa_atexit --enable-checking=release --enable-cloog-backend --enable-esp --enable-languages=c,c++,objc,java,fortran,ada --enable-shared --enable-threads --enable-tls --host=x86_64-alpine-linux-musl --mandir=/usr/share/man --target=x86_64-alpine-linux-musl Disk Details- Bare Metal Host: DEADLINE / data=ordered,errors=remount-ro,relatime,rwProcessor Details- Scaling Governor: intel_pstate powersaveDisk Scheduler Details- ubuntu, clearlinux, centos, debian, alpine: DEADLINE

Docker Linux OS Image Performance Comparisonc-ray: Total Timedolfyn: Computational Fluid Dynamicsfftw: Float + SSE - 2D FFT Size 4096encode-flac: WAV To FLAChimeno: Poisson Pressure Solverjohn-the-ripper: Blowfishpgbench: Mostly RAM - Normal Load - Read Writeredis: GETredis: SETsqlite: Default Test Directoryhmmer: Pfam Database Searchbuild-linux-kernel: Time To Compilebuild-php: Time To Compiletscp: AI Chess PerformanceBare Metal Hostubuntuclearlinuxcentosdebianalpine15.5721.28131326.342072.71103533147.122025733.911561907.1325.596.9719.71121450615.5922.96131856.522003.65101283119.851998103.081381204.1927.5210.5574.8520.88125048616.5420.85131526.342244.3958912095210.681548215.3425.9228.10126861915.94130887.6974921916026.791450378.9127.337.4874.7715.6023.19130286.442005.5698623077.931706732.231371772.5627.387.0081.1521.48122328515.6022.43130886.541564.701002027.308.2099.001243777OpenBenchmarking.org

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeBare Metal Hostubuntudebianalpinecentosclearlinux48121620SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 315.5715.5915.6015.6015.9416.54-pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -lm -lpthread -O3

Dolfyn

Computational Fluid Dynamics

OpenBenchmarking.orgSeconds, Fewer Is BetterDolfyn 0.527Computational Fluid DynamicsclearlinuxBare Metal Hostalpineubuntudebian612182430SE +/- 0.14, N = 3SE +/- 0.24, N = 3SE +/- 0.22, N = 3SE +/- 0.34, N = 5SE +/- 0.15, N = 320.8521.2822.4322.9623.19

FFTW

Build: Float + SSE - Size: 2D FFT Size 4096

OpenBenchmarking.orgMflops, More Is BetterFFTW 3.3.4Build: Float + SSE - Size: 2D FFT Size 4096ubuntuclearlinuxBare Metal Hostalpinecentosdebian3K6K9K12K15KSE +/- 87.60, N = 5SE +/- 84.21, N = 5SE +/- 52.09, N = 5SE +/- 53.81, N = 5SE +/- 122.12, N = 5SE +/- 113.66, N = 5131851315213132130881308813028-fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math-pipe -fexceptions -fstack-protector -m64 -march=westmere -malign-data=abi -ftree-vectorize-fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math-fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math-std=gnu99 -fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math-std=gnu99 -fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math1. (CC) gcc options: -O3 -mtune=native -lm

FLAC Audio Encoding

WAV To FLAC

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.1WAV To FLACBare Metal Hostclearlinuxdebianubuntualpinecentos246810SE +/- 0.02, N = 5SE +/- 0.02, N = 5SE +/- 0.07, N = 5SE +/- 0.05, N = 5SE +/- 0.08, N = 5SE +/- 0.03, N = 56.346.346.446.526.547.69-O2-O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize -logg-O2-O2-O2-O21. (CXX) g++ options: -fvisibility=hidden -lm

Himeno Benchmark

Poisson Pressure Solver

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverclearlinuxBare Metal Hostdebianubuntualpine5001000150020002500SE +/- 4.78, N = 3SE +/- 10.88, N = 3SE +/- 2.38, N = 3SE +/- 1.59, N = 3SE +/- 2.70, N = 32244.392072.712005.562003.651564.70-pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -O3 -mavx2

John The Ripper

Test: Blowfish

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.8.0Test: BlowfishBare Metal Hostubuntualpinedebiancentosclearlinux2K4K6K8K10KSE +/- 8.37, N = 3SE +/- 4.67, N = 3SE +/- 21.46, N = 3SE +/- 2.00, N = 3SE +/- 21.22, N = 3SE +/- 24.85, N = 31035310128100209862749258911. (CC) gcc options: -fopenmp -lcrypt

PostgreSQL pgbench

Scaling: Mostly RAM - Test: Normal Load - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: Mostly RAM - Test: Normal Load - Mode: Read WriteBare Metal Hostubuntudebian7001400210028003500SE +/- 26.04, N = 3SE +/- 48.63, N = 3SE +/- 55.06, N = 63147.123119.853077.931. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Redis

Test: GET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: GETclearlinuxBare Metal Hostubuntucentosdebian400K800K1200K1600K2000KSE +/- 32846.03, N = 6SE +/- 38349.16, N = 3SE +/- 27846.28, N = 3SE +/- 62743.09, N = 6SE +/- 94610.73, N = 62095210.682025733.911998103.081916026.791706732.23-fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: SETBare Metal Hostclearlinuxcentosubuntudebian300K600K900K1200K1500KSE +/- 13161.31, N = 3SE +/- 26653.10, N = 4SE +/- 41486.39, N = 6SE +/- 42249.24, N = 6SE +/- 46601.75, N = 61561907.131548215.341450378.911381204.191371772.56-fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops

SQLite

Test Target: Default Test Directory

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryBare Metal Hostclearlinuxalpinecentosdebianubuntu612182430SE +/- 0.27, N = 3SE +/- 0.22, N = 3SE +/- 0.13, N = 3SE +/- 0.25, N = 3SE +/- 0.11, N = 3SE +/- 0.10, N = 325.5925.9227.3027.3327.3827.52-O2 -ldl -lpthread-O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize -lcurses -ldl -lpthread-O2-O2 -ldl -lpthread-O2 -ldl -lpthread-O2 -ldl -lpthread1. (CC) gcc options:

Timed HMMer Search

Pfam Database Search

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchBare Metal Hostdebiancentosalpineubuntu3691215SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.03, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 36.977.007.488.2010.55-pthread-pthread-pthread-pthread1. (CC) gcc options: -O2 -lhmmer -lsquid -lm

Timed Linux Kernel Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.3Time To Compilecentosubuntudebianalpine20406080100SE +/- 0.78, N = 3SE +/- 0.87, N = 3SE +/- 1.24, N = 3SE +/- 1.07, N = 374.7774.8581.1599.00

Timed PHP Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 5.2.9Time To CompileBare Metal Hostubuntudebianclearlinux714212835SE +/- 0.02, N = 3SE +/- 0.07, N = 3SE +/- 0.05, N = 3SE +/- 0.12, N = 319.7120.8821.4828.10-O2-O2-O2-O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -pedantic -ldl -lz -lm

TSCP

AI Chess Performance

OpenBenchmarking.orgNodes Per Second, More Is BetterTSCP 1.81AI Chess PerformanceclearlinuxubuntualpinedebianBare Metal Host300K600K900K1200K1500KSE +/- 18289.20, N = 3SE +/- 19711.99, N = 3SE +/- 14362.25, N = 4SE +/- 2323.38, N = 4SE +/- 773.07, N = 412686191250486124377712232851214506-pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize1. (CC) gcc options: -O3 -march=native


Phoronix Test Suite v10.8.4