我使用的是 Ubuntu14.04 和 docker1.10.3。

当我使用 docker run 执行 --memory-swap -1 时,我发现主机使用的内存超出了该容器可以使用的最大内存,并且主机上没有其他进程消耗大量内存。下面的图片是我在我的电脑上进行的测试:

memory -  docker 内存交换=-1 OOM-LMLPHP

第一部分是主机上的内存使用情况。
第二部分是在容器中运行的测试,以使用 stress 模拟使用容器中的 900M 内存。
第三部分使用 docker stats 查看容器的当前统计信息。

我发现虽然docker stats显示容器使用的内存不超过104.9M,但在主机上使用的内存远远超过104.9M。 --memory-swap -1 似乎允许容器使用尽可能多的内存。

这是真的吗?

最佳答案

是的,你是完全正确的。

您可以在 docker references 中找到更多信息(尽管该问题并未在那里明确说明)。
--memory-swap="" Total memory limit (memory + swap, format: <number>[<unit>]). Number is a positive integer. Unit can be one of b, k, m, or g.--memory-swap -1 ...disabled swap memory limit, this means the processes in the container can use as much swap memory as they need (if the host supports swap memory).
如果您想禁用容器的交换使用,您可以使用
--memory-swap=0

关于memory - docker 内存交换=-1 OOM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37640119/

10-14 01:05