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.

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 Comparisonsqlite: Default Test Directorydolfyn: Computational Fluid Dynamicsfftw: Float + SSE - 2D FFT Size 4096hmmer: Pfam Database Searchtscp: AI Chess Performancejohn-the-ripper: Blowfishhimeno: Poisson Pressure Solverbuild-linux-kernel: Time To Compilebuild-php: Time To Compilec-ray: Total Timeencode-flac: WAV To FLACpgbench: Mostly RAM - Normal Load - Read Writeredis: GETredis: SETBare Metal Hostubuntuclearlinuxcentosdebianalpine25.5921.28131326.971214506103532072.7119.7115.576.343147.122025733.911561907.1327.5222.961318510.551250486101282003.6574.8520.8815.596.523119.851998103.081381204.1925.9220.8513152126861958912244.3928.1016.546.342095210.681548215.3427.33130887.48749274.7715.947.691916026.791450378.9127.3823.19130287.00122328598622005.5681.1521.4815.606.443077.931706732.231371772.5627.3022.43130888.201243777100201564.7099.0015.606.54OpenBenchmarking.org

SQLite

Test Target: Default Test Directory

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

Dolfyn

Computational Fluid Dynamics

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

FFTW

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

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

Timed HMMer Search

Pfam Database Search

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

TSCP

AI Chess Performance

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

John The Ripper

Test: Blowfish

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

Himeno Benchmark

Poisson Pressure Solver

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

Timed Linux Kernel Compilation

Time To Compile

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

Timed PHP Compilation

Time To Compile

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

C-Ray

Total Time

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

FLAC Audio Encoding

WAV To FLAC

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

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: GETBare Metal Hostubuntuclearlinuxcentosdebian400K800K1200K1600K2000KSE +/- 38349.16, N = 3SE +/- 27846.28, N = 3SE +/- 32846.03, N = 6SE +/- 62743.09, N = 6SE +/- 94610.73, N = 62025733.911998103.082095210.681916026.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 Hostubuntuclearlinuxcentosdebian300K600K900K1200K1500KSE +/- 13161.31, N = 3SE +/- 42249.24, N = 6SE +/- 26653.10, N = 4SE +/- 41486.39, N = 6SE +/- 46601.75, N = 61561907.131381204.191548215.341450378.911371772.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


Phoronix Test Suite v10.8.4