【发布时间】:2020-07-14 02:27:00
【问题描述】:
我们在 Kubernetes 的 Docker 容器内运行 MongoDB mongod 进程,并具有明确的内存限制。
我正在尝试为施加的内存限制正确配置 mongod 进程。
这些是我可以从文档中收集的信息:
- MongoDB 的内存使用与 WiredTiger 缓存大小相关。它使用公式 50% of (RAM - 1 GB) 或至少 256 MB https://docs.mongodb.com/manual/core/wiredtiger/#memory-use 计算
- RAM 是系统上可用的 RAM 总量。在容器化节点的情况下,它是容器的可用内存(自 MongoDB 4.0.9 起)https://docs.mongodb.com/manual/faq/diagnostics/#must-my-working-set-size-fit-ram
- “如果您在无法访问系统中所有可用 RAM 的容器(例如 lxc、cgroups、Docker 等)中运行 mongod,则必须将 storage.wiredTiger.engineConfig.cacheSizeGB 设置为一个值小于容器中可用的 RAM 量。” https://docs.mongodb.com/manual/faq/diagnostics/#must-my-working-set-size-fit-ram
- 文档指出应避免将 WiredTiger 缓存大小增加到默认值以上。 https://docs.mongodb.com/manual/faq/diagnostics/#must-my-working-set-size-fit-ram
这个信息有点不清楚。
我是保留 WiredTiger 缓存大小的默认值还是将其设置为“小于容器中可用 RAM 量的值”?这个值应该低多少? (高于默认值的值也会与不将其增加到默认值以上的建议相矛盾)
【问题讨论】:
标签: mongodb docker kubernetes