我正在尝试在由三个 VM 组成的 Docker Swarm 中设置硬 CPU 和内存限制。我在我的文件中使用docker 文档docker-compose.yml建议的 cpu 和内存限制配置。我的docker-compose.yml文件看起来像
version: "3"
services:
app:
# replace username/repo:tag with your name and image details
image: user/testing:part2
deploy:
replicas: 10
resources:
limits:
cpus: "0.5"
memory: 4M
restart_policy:
condition: on-failure
我的主机和虚拟机的 CPU 和内存资源如下图所示。我的主机有4CPU,所有的虚拟机都有1CPU。
为了弄清楚 Docker 容器是否可以限制它们的资源,我infinite loop在我的 swarm 中运行了一个测试程序。我的实验中的一张快照如下所示。它显示docker stats了三个 VM 上的结果(VM1:左下,VM2:右上,VM3:右下)。
看看结果,我有几个问题。
50%每个容器的 CPU 限制如何?- 每个 VM 都有
1CPU,那么如何在一个 VM 上,docker 容器 CPU% 总和超过100%? - 在上图中,我
7正在运行 docker 容器,所有这些容器的 CPU% 总和22+21+88+52+66+78+76 = 403约为。这意味着 swarm 正在使用4核心而不是3. 如果需要,docker 是否有可能允许 swarm 使用主机的 CPU 资源?
有人可以指导我解决这些问题吗?谢谢你。

