-
Notifications
You must be signed in to change notification settings - Fork 2
Docker CPU Performance Overhead
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
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
stopping Daemon docker & containerd bring the performance back to 710k again. Looks like the 2 services have some of the API overhead.