我有 MySQL (5.7) 在 Docker (18.03.1-ce) 容器中运行,我正在使用 Sysbench (1.0.15) 对其进行基准测试。当我使用 --cpus=1 运行 Docker 以限制容器的 cpu 利用率时,我在每秒事务数 (TPS) 和延迟 (P99) 方面的性能很差。
docker run --cpus=1 -it --rm mysqldemo
结果:TPS=490 和延迟(P99)=41ms
现在,如果我将 cpu 的数量增加到 2,结果会好得多。
docker run --cpus=2 -it --rm mysqldemo
结果:TPS=865 和延迟(P99)=1.5ms
请注意,这种性能提升不仅仅是拥有更多内核的结果,因为在 Sysbench 中,我将线程设置为 1。在两次运行中,除了 CPU 限制之外,一切都是相同的。
所以,我想知道 Docker 是否有某种开销导致 --cpus=1 性能很差。