热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

什么是Docker在说"没有交换的内存限制"时的含义

如何解决《什么是Docker在说"没有交换的内存限制"时的含义》经验,为你挑选了1个好方法。

当我运行docker时,我收到警告:

警告:您的内核不支持交换限制功能或未安装cgroup.内存限制没有交换.

我想弄清楚这意味着什么,特别是"没有交换的内存限制"这句话.

这是否意味着通过使用主机的交换空间,容器可以使用比通常允许的容量更多的内存?或者它是否意味着即使主机完全耗尽内存,容器也无法使用交换空间?是否配置了交换空间?如果你不使用交换,这是无关紧要的吗?

注意:我对如何修复它不感兴趣 - 谷歌上有很多关于它的结果.我对它的含义感兴趣,以及它为何重要.



1> bluescores..:

这是我发现的。

交换默认情况下不使用。您可以在Ubuntu / Debian容器上进行检查/sys/fs/cgroup/memory/memory.stat。检查swap值,您将看到它设置为0(字节)。没有交换使用。

您通常可以使用--memory--memory-swap标志来启用和限制交换使用,这就是该警告可以帮助您的地方。来自Docker的文档中有关非常类似的警告的信息:

如果不需要这些功能,则可以忽略该警告。您可以按照以下说明在Ubuntu或Debian上启用这些功能。

tl; dr:默认禁用交换。如果禁用cgroup或以其他方式破坏了容器交换限制(如该警告所示),则您将无法设置这些限制。


推荐阅读
author-avatar
亚璨的秘密
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有