【问题标题】:How do i calculate WiredTiger cache size in a docker container?如何计算 docker 容器中的 WiredTiger 缓存大小?
【发布时间】:2020-07-14 02:27:00
【问题描述】:

我们在 Kubernetes 的 Docker 容器内运行 MongoDB mongod 进程,并具有明确的内存限制。

我正在尝试为施加的内存限制正确配置 mongod 进程。

这些是我可以从文档中收集的信息:

这个信息有点不清楚。

我是保留 WiredTiger 缓存大小的默认值还是将其设置为“小于容器中可用 RAM 量的值”?这个值应该低多少? (高于默认值的值也会与不将其增加到默认值以上的建议相矛盾)

【问题讨论】:

    标签: mongodb docker kubernetes


    【解决方案1】:

    默认设置是允许 WiredTiger 缓存使用略少于系统总 RAM 的一半。

    该进程通常通过查询底层操作系统来自动确定总 RAM。

    对于已分配 16GB RAM 但在具有 128GB RAM 的主机上运行的 Docker 容器,系统调用将报告 128GB。在这种情况下,默认值为 63GB,这显然会导致问题。

    一般:

    • 在系统调用报告环境中可用的真实内存的情况下使用默认值。这包括裸机、大多数虚拟机、云提供商等。
    • 在系统调用报告的内存量不反映容器可用总量的容器中,手动计算默认值,然后使用该值。

    【讨论】:

    • 据此它从 4.0.9 返回实际容器限制并使用它们进行计算docs.mongodb.com/manual/reference/command/hostInfo/…
    • 所以只是为了确认我明白了:如果我在 Docker 容器内运行的 mongod 进程获得了正确的 RAM 值(实际请求),我只保留默认值。如果没有,我根据 mongodb 提供的公式计算有线 Tiger 缓存大小?
    • 是的,我也是这样做的!它似乎知道容器可以使用多少内存,并将使用它。
    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    相关资源
    最近更新 更多