【问题标题】:mongodb memory releasemongodb内存释放
【发布时间】:2012-10-04 23:12:51
【问题描述】:

我是 mongodb 的新手,正在用它做一些测试(1 个主 + 1 个从)。 我们在几个集合中插入了 200 万个文档(Ubuntu,具有 6G RAM,四核),mongodb 的内存从 40m 增加到 4G(我们可以接受)。现在我们删除了所有数据,我们预计内存 (RSS) 会回落到 40m。正常吗? mongodb 是否需要时间来刷新内存(基于一些调度)?

仅供参考:性能(来自前端 GUI)非常好,并且通过添加索引得到了很大改善。

谢谢

【问题讨论】:

    标签: mongodb memory-leaks


    【解决方案1】:
    1. MongoDB 使用内存映射文件。
    2. 删除记录时,MongoDB 不会自动缩小文件大小;它只是将文件内的空间标记为空闲空间,以便重复使用。
    3. 您可以强制 Mongo 通过重建数据库来回收空间。

    http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

    【讨论】:

    • 运行 repairDatabase 31023 mongodb 20 0 88.7g 914m 633m S 0 16.0 99:16.53 mongod 仍然 ~1G。
    • 是 RAM 还是实际磁盘使用量为 1G?
    • 它是 RAM (RSS),磁盘空间要大得多(目前还可以),但内存是个问题。
    • 澄清一下,我指的是 Mongo 数据文件的大小,而不是总磁盘使用量。
    • 如文档herehere 中所讨论的,如果MongoDB 是唯一运行的进程,则驻留内存大小将趋向于总RAM。这通常不是问题,因为操作系统会根据需要释放内存。如果此值超出系统内存,并且您的磁盘上有大量数据不在 RAM 中,则您可能已超出系统容量
    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2013-12-05
    • 2015-04-22
    • 2011-01-17
    • 2021-12-23
    • 2017-06-29
    相关资源
    最近更新 更多