我在docker swarm ucp(使用compose.yml文件)和mesos(使用marathon.json文件)中以docker容器的形式运行我的应用程序。
我在两个文件中都添加了资源约束。
合成.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是软限制。i、 cpu限制仅用于重量和优先级。如果mesos cpu为1,并且如果两个应用程序分别运行0.4cpu和0.6cpu,那么app one将获得40%的cpu周期,app two将获得60%的cpu周期。
那么compose.yml文件中的limit和reservation有什么用呢?
现在我正在努力理解下面的事情
1) 这种资源约束究竟是如何工作的
2) 当容器超过这些值时会发生什么。
1条答案
按热度按时间ct3nt3jp1#
reservations
意味着容器不会在没有足够的可用资源来遵守此约束的节点上启动。limits
意味着当容器中的进程达到该限制并试图分配更多时,它将被强制终止。