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 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 c-ray: Total Time dolfyn: Computational Fluid Dynamics fftw: Float + SSE - 2D FFT Size 4096 encode-flac: WAV To FLAC himeno: Poisson Pressure Solver john-the-ripper: Blowfish pgbench: Mostly RAM - Normal Load - Read Write redis: GET redis: SET sqlite: Default Test Directory hmmer: Pfam Database Search build-linux-kernel: Time To Compile build-php: Time To Compile tscp: AI Chess Performance Bare Metal Host ubuntu clearlinux centos debian alpine 15.57 21.28 13132 6.34 2072.71 10353 3147.12 2025733.91 1561907.13 25.59 6.97 19.71 1214506 15.59 22.96 13185 6.52 2003.65 10128 3119.85 1998103.08 1381204.19 27.52 10.55 74.85 20.88 1250486 16.54 20.85 13152 6.34 2244.39 5891 2095210.68 1548215.34 25.92 28.10 1268619 15.94 13088 7.69 7492 1916026.79 1450378.91 27.33 7.48 74.77 15.60 23.19 13028 6.44 2005.56 9862 3077.93 1706732.23 1371772.56 27.38 7.00 81.15 21.48 1223285 15.60 22.43 13088 6.54 1564.70 10020 27.30 8.20 99.00 1243777 OpenBenchmarking.org
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time Bare Metal Host ubuntu debian alpine centos clearlinux 4 8 12 16 20 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 15.57 15.59 15.60 15.60 15.94 16.54 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -lm -lpthread -O3
Dolfyn Computational Fluid Dynamics OpenBenchmarking.org Seconds, Fewer Is Better Dolfyn 0.527 Computational Fluid Dynamics clearlinux Bare Metal Host alpine ubuntu debian 6 12 18 24 30 SE +/- 0.14, N = 3 SE +/- 0.24, N = 3 SE +/- 0.22, N = 3 SE +/- 0.34, N = 5 SE +/- 0.15, N = 3 20.85 21.28 22.43 22.96 23.19
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 ubuntu clearlinux Bare Metal Host alpine centos debian 3K 6K 9K 12K 15K SE +/- 87.60, N = 5 SE +/- 84.21, N = 5 SE +/- 52.09, N = 5 SE +/- 53.81, N = 5 SE +/- 122.12, N = 5 SE +/- 113.66, N = 5 13185 13152 13132 13088 13088 13028 -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-math 1. (CC) gcc options: -O3 -mtune=native -lm
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC Bare Metal Host clearlinux debian ubuntu alpine centos 2 4 6 8 10 SE +/- 0.02, N = 5 SE +/- 0.02, N = 5 SE +/- 0.07, N = 5 SE +/- 0.05, N = 5 SE +/- 0.08, N = 5 SE +/- 0.03, N = 5 6.34 6.34 6.44 6.52 6.54 7.69 -O2 -O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize -logg -O2 -O2 -O2 -O2 1. (CXX) g++ options: -fvisibility=hidden -lm
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver clearlinux Bare Metal Host debian ubuntu alpine 500 1000 1500 2000 2500 SE +/- 4.78, N = 3 SE +/- 10.88, N = 3 SE +/- 2.38, N = 3 SE +/- 1.59, N = 3 SE +/- 2.70, N = 3 2244.39 2072.71 2005.56 2003.65 1564.70 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -O3 -mavx2
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 alpine debian centos clearlinux 2K 4K 6K 8K 10K SE +/- 8.37, N = 3 SE +/- 4.67, N = 3 SE +/- 21.46, N = 3 SE +/- 2.00, N = 3 SE +/- 21.22, N = 3 SE +/- 24.85, N = 3 10353 10128 10020 9862 7492 5891 1. (CC) gcc options: -fopenmp -lcrypt
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 clearlinux Bare Metal Host ubuntu centos debian 400K 800K 1200K 1600K 2000K SE +/- 32846.03, N = 6 SE +/- 38349.16, N = 3 SE +/- 27846.28, N = 3 SE +/- 62743.09, N = 6 SE +/- 94610.73, N = 6 2095210.68 2025733.91 1998103.08 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 clearlinux centos ubuntu debian 300K 600K 900K 1200K 1500K SE +/- 13161.31, N = 3 SE +/- 26653.10, N = 4 SE +/- 41486.39, N = 6 SE +/- 42249.24, N = 6 SE +/- 46601.75, N = 6 1561907.13 1548215.34 1450378.91 1381204.19 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
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 clearlinux alpine centos debian ubuntu 6 12 18 24 30 SE +/- 0.27, N = 3 SE +/- 0.22, N = 3 SE +/- 0.13, N = 3 SE +/- 0.25, N = 3 SE +/- 0.11, N = 3 SE +/- 0.10, N = 3 25.59 25.92 27.30 27.33 27.38 27.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 -lpthread 1. (CC) gcc options:
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search Bare Metal Host debian centos alpine ubuntu 3 6 9 12 15 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 6.97 7.00 7.48 8.20 10.55 -pthread -pthread -pthread -pthread 1. (CC) gcc options: -O2 -lhmmer -lsquid -lm
Timed Linux Kernel Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Linux Kernel Compilation 4.3 Time To Compile centos ubuntu debian alpine 20 40 60 80 100 SE +/- 0.78, N = 3 SE +/- 0.87, N = 3 SE +/- 1.24, N = 3 SE +/- 1.07, N = 3 74.77 74.85 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 debian clearlinux 7 14 21 28 35 SE +/- 0.02, N = 3 SE +/- 0.07, N = 3 SE +/- 0.05, N = 3 SE +/- 0.12, N = 3 19.71 20.88 21.48 28.10 -O2 -O2 -O2 -O3 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -pedantic -ldl -lz -lm
TSCP AI Chess Performance OpenBenchmarking.org Nodes Per Second, More Is Better TSCP 1.81 AI Chess Performance clearlinux ubuntu alpine debian Bare Metal Host 300K 600K 900K 1200K 1500K SE +/- 18289.20, N = 3 SE +/- 19711.99, N = 3 SE +/- 14362.25, N = 4 SE +/- 2323.38, N = 4 SE +/- 773.07, N = 4 1268619 1250486 1243777 1223285 1214506 -pipe -fexceptions -fstack-protector -m64 -march=westmere -mtune=native -malign-data=abi -ftree-vectorize 1. (CC) gcc options: -O3 -march=native
Phoronix Test Suite v10.8.4