【问题标题】:Is there a way to release RAM occupied by mongodb indexes, after dropping collection?有没有办法在删除集合后释放 mongodb 索引占用的 RAM?
【发布时间】:2020-10-21 11:58:34
【问题描述】:

问题是我们有一个巨大的数据集,包含 5000 万条记录,几乎所有字段都被索引,这会导致巨大的 RAM 消耗,并且删除集合后资源没有释放,我知道这可以通过重新启动来解决服务器,但此解决方案不适用于我们的情况。所以,我的问题 - 有没有办法在不重新启动 mongo 服务器的情况下释放 RAM 资源? Mongo 的版本是 4.4。提前致谢。

【问题讨论】:

    标签: mongodb mongodb-indexes


    【解决方案1】:

    不直接... MongoDB 从不释放内存,它只是替换它或分配更多。 但是,如果您开始从磁盘数据中读取您需要的数据,那么该数据将取代那部分内存。 基本问题是 MongoDB 将始终使用(最终)所有可用内存,并尝试将所有活动数据保留在内存中。因此,从磁盘读取数据,使数据“活跃”,并会改变内存中磁盘缓存的内容。

    【讨论】:

    • 感谢您的回复。考虑到您的评论,释放内存的想法不是一种选择,那么是否有任何选择来限制 ram 的使用?假设我有 16 GB,我希望 mongo 最多消耗 4 个。我尝试了一个名为“cacheSizeGb”的有线老虎选项,但现在没有运气。
    • 是的...如果您使用的是 Unix (Linux),答案是“cgroups”。
    • 好吧,不幸的是,我们的产品将分布在不同的系统中,因此,不能选择使用此变体。但是,我们找到了一个目前运行良好的解决方案 - 使用额外的配置,即引擎配置的“configString”:“cache_size =”,这允许我们限制正在使用的内存量。
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多