1

我正在尝试在由三个 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:右下)。

在此处输入图像描述

看看结果,我有几个问题。

  1. 50%每个容器的 CPU 限制如何?
  2. 每个 VM 都有1CPU,那么如何在一个 VM 上,docker 容器 CPU% 总和超过100%
  3. 在上图中,我7正在运行 docker 容器,所有这些容器的 CPU% 总和22+21+88+52+66+78+76 = 403约为。这意味着 swarm 正在使用4核心而不是3. 如果需要,docker 是否有可能允许 swarm 使用主机的 CPU 资源?

有人可以指导我解决这些问题吗?谢谢你。

4

0 回答 0