我可以为docker服务设置“MemorySwap”和“MemorySwappiness”吗?
我想禁用 docker 容器的内存交换(由 docker 服务启动),但我不想为主机禁用它。
“MemorySwappiness”中的 -1 值意味着什么?
Docker 版本:17.06.2-ce
虽然这个问题很老了,但由于没有答案,我决定发布一个。
事实上,现在只需使用选项即可支持禁用内存交换--memory-swap
创建容器时。您只需设置--memory
and --memory-swap
为相同的值,根据docs https://docs.docker.com/config/containers/resource_constraints/#prevent-a-container-from-using-swap.
这是在 docker compose 文件中执行相同操作的方法:
services:
mysvc:
...
deploy:
resources:
limits:
memory: 500m
memswap_limit: 500m
即,将可使用的内存+交换总量设置为 500m,这 - 考虑到只有 500m 的内存 - 意味着不需要交换,因此它将被有效禁用。
有关内存交换的更多信息,请访问文档的此页 https://docs.docker.com/config/containers/resource_constraints/关于限制资源访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)