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 Comparison Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution System Layer Vulkan Bare Metal Host ubuntu clearlinux centos debian alpine Intel Core i7-6800K @ 3.80GHz (12 Cores) MSI X99A WORKSTATION (MS-7A54) v1.0 Intel Xeon E7 v4/Xeon 16384MB 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150 NVIDIA GeForce GTX TITAN X 12258MB Realtek ALC1150 ASUS PB278 Intel Connection Ubuntu 16.10 4.8.0-27-generic (x86_64) Unity 7.5.0 X Server 1.18.4 nouveau 1.0.12 3.3 Mesa 12.0.3 Gallium 0.4 GCC 6.2.0 20161005 ext4 2560x1440 12288MB Ubuntu 16.04.1 LTS GCC 5.4.0 20160609 aufs docker Clear Linux 11660 1.0.3 GCC 6.2.0 + Clang 3.9.0 + LLVM 3.9.0 CentOS Linux 7 GCC 4.8.5 20150623 Debian GNU/Linux 8 GCC 4.9.2 Alpine Linux v3.4 3.4.4 GNOME Shell Wayland Weston + SurfaceFlinger + GNOME Shell Wayland GCC 5.3.0 AuFS OpenBenchmarking.org Compiler 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,rw Processor Details - Scaling Governor: intel_pstate powersave Disk Scheduler Details - ubuntu, clearlinux, centos, debian, alpine: DEADLINE
Docker Linux OS Image Performance Comparison sqlite: Default Test Directory dolfyn: Computational Fluid Dynamics fftw: Float + SSE - 2D FFT Size 4096 hmmer: Pfam Database Search tscp: AI Chess Performance john-the-ripper: Blowfish himeno: Poisson Pressure Solver build-linux-kernel: Time To Compile build-php: Time To Compile c-ray: Total Time encode-flac: WAV To FLAC pgbench: Mostly RAM - Normal Load - Read Write redis: GET redis: SET Bare Metal Host ubuntu clearlinux centos debian alpine 25.59 21.28 13132 6.97 1214506 10353 2072.71 19.71 15.57 6.34 3147.12 2025733.91 1561907.13 27.52 22.96 13185 10.55 1250486 10128 2003.65 74.85 20.88 15.59 6.52 3119.85 1998103.08 1381204.19 25.92 20.85 13152 1268619 5891 2244.39 28.10 16.54 6.34 2095210.68 1548215.34 27.33 13088 7.48 7492 74.77 15.94 7.69 1916026.79 1450378.91 27.38 23.19 13028 7.00 1223285 9862 2005.56 81.15 21.48 15.60 6.44 3077.93 1706732.23 1371772.56 27.30 22.43 13088 8.20 1243777 10020 1564.70 99.00 15.60 6.54 OpenBenchmarking.org
SQLite Test Target: Default Test Directory OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.8.10.2 Test Target: Default Test Directory Bare Metal Host ubuntu clearlinux centos debian alpine 6 12 18 24 30 SE +/- 0.27, N = 3 SE +/- 0.10, N = 3 SE +/- 0.22, N = 3 SE +/- 0.25, N = 3 SE +/- 0.11, N = 3 SE +/- 0.13, N = 3 25.59 27.52 25.92 27.33 27.38 27.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 -O2 1. (CC) gcc options:
Dolfyn Computational Fluid Dynamics OpenBenchmarking.org Seconds, Fewer Is Better Dolfyn 0.527 Computational Fluid Dynamics Bare Metal Host ubuntu clearlinux debian alpine 6 12 18 24 30 SE +/- 0.24, N = 3 SE +/- 0.34, N = 5 SE +/- 0.14, N = 3 SE +/- 0.15, N = 3 SE +/- 0.22, N = 3 21.28 22.96 20.85 23.19 22.43
FFTW Build: Float + SSE - Size: 2D FFT Size 4096 OpenBenchmarking.org Mflops, More Is Better FFTW 3.3.4 Build: Float + SSE - Size: 2D FFT Size 4096 Bare Metal Host ubuntu clearlinux centos debian alpine 3K 6K 9K 12K 15K SE +/- 52.09, N = 5 SE +/- 87.60, N = 5 SE +/- 84.21, N = 5 SE +/- 122.12, N = 5 SE +/- 113.66, N = 5 SE +/- 53.81, N = 5 13132 13185 13152 13088 13028 13088 -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-math 1. (CC) gcc options: -O3 -mtune=native -lm
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search Bare Metal Host ubuntu centos debian alpine 3 6 9 12 15 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 6.97 10.55 7.48 7.00 8.20 -pthread -pthread -pthread -pthread 1. (CC) gcc options: -O2 -lhmmer -lsquid -lm
TSCP AI Chess Performance OpenBenchmarking.org Nodes Per Second, More Is Better TSCP 1.81 AI Chess Performance Bare Metal Host ubuntu clearlinux debian alpine 300K 600K 900K 1200K 1500K SE +/- 773.07, N = 4 SE +/- 19711.99, N = 3 SE +/- 18289.20, N = 3 SE +/- 2323.38, N = 4 SE +/- 14362.25, N = 4 1214506 1250486 1268619 1223285 1243777 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -O3 -march=native
John The Ripper Test: Blowfish OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: Blowfish Bare Metal Host ubuntu clearlinux centos debian alpine 2K 4K 6K 8K 10K SE +/- 8.37, N = 3 SE +/- 4.67, N = 3 SE +/- 24.85, N = 3 SE +/- 21.22, N = 3 SE +/- 2.00, N = 3 SE +/- 21.46, N = 3 10353 10128 5891 7492 9862 10020 1. (CC) gcc options: -fopenmp -lcrypt
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver Bare Metal Host ubuntu clearlinux debian alpine 500 1000 1500 2000 2500 SE +/- 10.88, N = 3 SE +/- 1.59, N = 3 SE +/- 4.78, N = 3 SE +/- 2.38, N = 3 SE +/- 2.70, N = 3 2072.71 2003.65 2244.39 2005.56 1564.70 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -O3 -mavx2
Timed Linux Kernel Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Linux Kernel Compilation 4.3 Time To Compile ubuntu centos debian alpine 20 40 60 80 100 SE +/- 0.87, N = 3 SE +/- 0.78, N = 3 SE +/- 1.24, N = 3 SE +/- 1.07, N = 3 74.85 74.77 81.15 99.00
Timed PHP Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile Bare Metal Host ubuntu clearlinux debian 7 14 21 28 35 SE +/- 0.02, N = 3 SE +/- 0.07, N = 3 SE +/- 0.12, N = 3 SE +/- 0.05, N = 3 19.71 20.88 28.10 21.48 -O2 -O2 -O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize -O2 1. (CC) gcc options: -pedantic -ldl -lz -lm
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time Bare Metal Host ubuntu clearlinux centos debian alpine 4 8 12 16 20 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 15.57 15.59 16.54 15.94 15.60 15.60 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -lm -lpthread -O3
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC Bare Metal Host ubuntu clearlinux centos debian alpine 2 4 6 8 10 SE +/- 0.02, N = 5 SE +/- 0.05, N = 5 SE +/- 0.02, N = 5 SE +/- 0.03, N = 5 SE +/- 0.07, N = 5 SE +/- 0.08, N = 5 6.34 6.52 6.34 7.69 6.44 6.54 -O2 -O2 -O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize -logg -O2 -O2 -O2 1. (CXX) g++ options: -fvisibility=hidden -lm
PostgreSQL pgbench Scaling: Mostly RAM - Test: Normal Load - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: Mostly RAM - Test: Normal Load - Mode: Read Write Bare Metal Host ubuntu debian 700 1400 2100 2800 3500 SE +/- 26.04, N = 3 SE +/- 48.63, N = 3 SE +/- 55.06, N = 6 3147.12 3119.85 3077.93 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: GET Bare Metal Host ubuntu clearlinux centos debian 400K 800K 1200K 1600K 2000K SE +/- 38349.16, N = 3 SE +/- 27846.28, N = 3 SE +/- 32846.03, N = 6 SE +/- 62743.09, N = 6 SE +/- 94610.73, N = 6 2025733.91 1998103.08 2095210.68 1916026.79 1706732.23 -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops
Redis Test: SET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: SET Bare Metal Host ubuntu clearlinux centos debian 300K 600K 900K 1200K 1500K SE +/- 13161.31, N = 3 SE +/- 42249.24, N = 6 SE +/- 26653.10, N = 4 SE +/- 41486.39, N = 6 SE +/- 46601.75, N = 6 1561907.13 1381204.19 1548215.34 1450378.91 1371772.56 -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops
Phoronix Test Suite v10.8.4