service 命令的 --limit-xxx 选项是否限制每个服务或每个容器的资源?

2024-01-03

service createdocker 1.12的命令有两个限制cpu和内存的选项,如下:

  --limit-cpu value              Limit CPUs (default 0.000)
  --limit-memory value           Limit Memory (default 0 B)

他们是否限制每个服务或每个容器的资源?


你可以看到在api/客户端/服务/update.go https://github.com/docker/docker/blob/e2a26744f987199dca7eacf93e3e236764c87f5e/api/client/service/update.go#L132-L135

taskResources().Limits = &swarm.Resources{}
updateInt64Value(flagLimitCPU, &task.Resources.Limits.NanoCPUs)

--limit-cpu被介绍于提交 12a00e6 https://github.com/docker/docker/commit/12a00e60177ca42bfb1dd9ebd5dce1c7039da6dd

考虑到swarmkit/manager/scheduler/nodeinfo.go https://github.com/docker/docker/blob/0ef720ededc24018ce1f727814b1a9ae93897891/vendor/src/github.com/docker/swarmkit/manager/scheduler/nodeinfo.go#L36删除任务时,有以下代码:

nodeInfo.AvailableResources.NanoCPUs += reservations.NanoCPUs

看来 limit-cpu 是由服务管理的每个节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

service 命令的 --limit-xxx 选项是否限制每个服务或每个容器的资源? 的相关文章

随机推荐