【发布时间】:2021-03-13 02:36:33
【问题描述】:
我在 Docker Swarm UCP(使用 compose.yml 文件)和 Mesos(使用 marathon.json 文件)中将我的应用程序作为 docker 容器运行。
我在两个文件中都添加了资源约束。
compose.yml:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
marathon.json:
"cpus": 0.50,
"mem": 128.0,
"disk": 5.0
我发现内存是硬限制,cpu 是软限制。即 cpu 限制仅适用于权重和优先级。如果 mesos cpu 为 1,并且如果两个应用程序运行一个使用 0.4 cpu 而另一个使用 0.6 cpu,则应用程序一将获得 40% 的 cpu 周期,而应用程序二将获得 60% 的 cpu 周期。
那么这里compose.yml文件中的limit和reservation有什么用呢?
现在我正在尝试了解以下内容
-
这种资源限制是如何工作的?
-
当容器超过这些值时会发生什么?
【问题讨论】:
标签: docker docker-compose docker-swarm mesos marathon