gpt4 book ai didi

mongodb - mongo 不遵守 Docker 内存限制

转载 作者:可可西里 更新时间:2023-11-01 09:25:41 25 4
gpt4 key购买 nike

我遇到的问题是 mongodb 不遵守强加的容器内存限制并溢出到交换区并减慢爬行速度 - 问题似乎是 mongo 认为所有主机内存都可用。参见 https://github.com/dockerfile/mongodb/issues/34

我的问题是 - docker 如何实现内存限制?对于在 unix 中像这样限制资源访问的可用选项是什么,我真的没有一个全面的了解——有人可以快速概述一下吗?

谢谢

最佳答案

这里有几点。

首先,在你的容器中运行的任何进程都会相信它可以访问与你的主机一样多的内存(docker 不会虚拟化内存)

您可以通过设置参数--memory 来限制您的容器被授权使用的内存。您可以通过将 --memory-swap 设置为与 --memory 完全相同的值来禁用交换:

If --memory and --memory-swap are set to the same value, this prevents containers from using any swap. This is because --memory-swap is the amount of combined memory and swap that can be used, while --memory is only the amount of physical memory that can be used.

现在,请记住,即使您设置了 --memory 和 --memory-swap,您的应用程序 (mongoDB) 也会认为它可以访问主机系统的总内存。在 mongoDb 3.2 中,它将使用总内存的 60%,减去 1G。如果要限制这个,需要配置storage.wiredTiger.engineConfig.cacheSizeGB

storage.wiredTiger.engineConfig.cacheSizeGB: The maximum size of the internal cache that WiredTiger will use for all data.

在此处查看 mongoDB 文档:https://docs.mongodb.com/v3.2/reference/configuration-options/#storage.wiredTiger.engineConfig.cacheSizeGB

以及 docker 文档: https://docs.docker.com/config/containers/resource_constraints/#memory

关于mongodb - mongo 不遵守 Docker 内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com