当我运行docker时,我收到警告:
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
我试图找出这意味着什么,特别是“没有交换的内存限制”这句话.
这是否意味着容器可以使用比通常使用主机的交换空间通常允许的容量更多的内存?或者它是否意味着即使主机完全耗尽内存,容器也无法使用交换空间?是否配置了交换空间?如果你不使用交换,这是无关紧要的吗?
注意:我对如何修复它不感兴趣 – 谷歌上有很多关于它的结果.我对它的意义以及它为何重要感兴趣.
最佳答案
这是我发现的.
默认情况下不使用交换.您可以在/sys/fs/cgroup/memory/memory.stat上的Ubuntu / Debian容器上查看.检查swap value,你会看到它被设置为0(字节).没有交换使用.
你可以使用带有–memory和–memory-swap标志的enable and limit swap usage,这里就是这个WARNING似乎能得到你的地方.从Docker’s documentation起关于一个非常相似的警告:
If you don’t need these capabilities,you can ignore the warning. You can enable these capabilities on Ubuntu or Debian by following these instructions.
tl; dr:默认禁用交换.如果cgroup被禁用或容器交换限制受到影响,就像此警告所示,您将无法设置这些限制.