gpt4 book ai didi

mongodb - 即使在 MongoDB 集合上完成创建索引后,内存使用率仍保持 99%

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

在 MongoDB 上做索引时。现在我们在数据库中有近 350 GB 的数据,并将其部署为 AWS EC2 中的 Windows 服务。

我们正在为一些实验做索引。但是每次我运行索引命令时,内存使用率都会达到 99%,即使在索引完成后,内存使用率也会保持这种状态,直到我重新启动服务。

该实例有 30 GB 的 RAM 和 SSD 驱动器。现在我们将数据库设置为独立的(直到现在还没有分片)。我们正在使用最新版本的 MongoDB。

任何与此相关的反馈都会有所帮助。

谢谢,

阿潘

最佳答案

这是 MongoDB 的正常行为。

MongoDB 会获取所有它可以获取的 RAM,以尽可能长时间地缓存每个已访问的文档。当您向集合添加索引时,每个文档都需要读取一次以构建索引,这会导致 MongoDB 将每个文档加载到 RAM 中。然后它将它们保存在 RAM 中,以备您稍后访问它们。但是 MongoDB 不会占用 RAM。当另一个进程需要内存时,MongoDB 会主动释放它。

这在 the FAQ 中有解释:

Does MongoDB require a lot of RAM?

Not necessarily. It’s certainly possible to run MongoDB on a machine with a small amount of free RAM.

MongoDB automatically uses all free memory on the machine as its cache. System resource monitors show that MongoDB uses a lot of memory, but its usage is dynamic. If another process suddenly needs half the server’s RAM, MongoDB will yield cached memory to the other process.

Technically, the operating system’s virtual memory subsystem manages MongoDB’s memory. This means that MongoDB will use as much free memory as it can, swapping to disk as needed. Deployments with enough memory to fit the application’s working data set in RAM will achieve the best performance.

See also: FAQ: MongoDB Diagnostics for answers to additional questions about MongoDB and Memory use.

关于mongodb - 即使在 MongoDB 集合上完成创建索引后,内存使用率仍保持 99%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010422/

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