gpt4 book ai didi

mongodb - 如何计算Docker容器中的WiredTiger缓存大小?

转载 作者:行者123 更新时间:2023-12-02 12:28:16 26 4
gpt4 key购买 nike

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

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

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

  • MongoDB的内存使用量与WiredTiger缓存大小相关。使用公式(RAM-1 GB)的50%或至少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数量的值”?该值应降低多少? (比默认值高的值也会与建议不要将其增加到默认值以上相矛盾)

    最佳答案

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

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

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

    一般来说:

  • 在系统调用报告环境中可用的真实内存的情况下,使用默认值。这包括裸机,大多数VM,云提供商等。
  • 在容器中,系统调用报告的内存量不能反射(reflect)容器可用的总量,请手动计算默认值(如果可以),然后使用该值。
  • 关于mongodb - 如何计算Docker容器中的WiredTiger缓存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60986120/

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