Skip to content

Docker CPU Performance Overhead

Weixing Sun edited this page Feb 20, 2019 · 3 revisions

Purpose: Requested by several clients for have a brief idea about how much tax we pay for docker vs. bare metal Just a simple evaluation of java performance for comparing docker overhead on SLE15

Hardware: 8x Skylake Xeon 8280, 96x 2933MHz 16GB

OS: SLES 15 with kernel 4.12.14-23

Software: Docker 17.09.1-ce (from Stock Package ISO)

Benchmark: SPECjbb2015 kit (multijvm mode)

Notes: the only difference is with/without the docker, and I simplify the scenario to evaluate only CPU/Memory performance

Docker config:

Use cpuset-cpus & cpuset-mems to bind docker/JVM to use local memory of each numanode

use host network to minimize the network impact

Results:

Bare metal score: 710k

Dockerized socre: 678k

Overhead is 4.5%

Future works:

Will diagnose the bcc/perf/flamegraph of the overall system to identify where is the overhead

Update:

stopping Daemon docker & containerd bring the performance back to 710k again. Looks like the 2 services have some of the API overhead.