Docker 和空闲容器资源消耗

Docker and idling container resource consumption

假设你有两个Docker个容器(分别是两个微服务),每个10GB RAM,每个承受1000rps的负载。在某些时候,您在第一个容器(微服务)上有 1900 rps,在第二个微服务(容器)上有 100 rps。

Docker 或 Docker Swarm 是否足够聪明,不会浪费分配给第二个微服务(Docker 容器)的 10 GB RAM?

在没有设置约束的情况下,Docker 只使用主机可用的内存。这将满足您上面的用例,如果一个微服务突然使用总计 16GB 内存中的 15GB 内存,Docker 就可以了。这可能会导致问题。

为了缓解 OOM 情况,您可以使用 --memory 标志为每个 运行 容器设置硬限制,或者使用 --memory-reservation 标志设置软限制。

请参阅 resource constraints 文档了解完整细目。