文档首页 > > 常见问题> 操作类问题> MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因

MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因

分享
更新时间: 2019/10/29 GMT+08:00

场景描述

在进行MongoDB数据库迁移的过程中,出现源数据库内存溢出(OOM),导致源数据库不可用,迁移失败。

问题分析

出现上述内存溢出可能存在如下原因:

  • 源数据库的mongod服务单独部署在一台机器上,如果这种情况下在迁移过程中出现内存溢出,一般就是因为在迁移过程中源库在执行会大量消耗内存的操作,比如:创建索引,排序查询等。
  • 源数据库的mongod服务和其他服务同时部署在一台机器上,而且没有设置cacheSizeGB的大小,这种情况下,如果因为其他服务消耗掉内存导致不能给wiredTiger引擎保证的内存,则会出现内存溢出的情况。

    一般默认情况下,mongod的wiredTiger引擎可以使用整个机器内存减一的50%(3.2的版本)或者60%(3.4以后的版本)。

解决方案

  • 如果mongod服务是单独部署在一台机器上,则在迁移过程中最好不要执行会大量消耗内存的操作,比如:创建索引,排序查询等。
  • 如果mongod服务和其他服务共同部署在一台机器上,则建议给mongod的wiredTiger引擎加上cacheSizeGB的参数,设置的值为机器最小空闲内存的一半,保证所有服务在高峰期所使用的内存不会超过分配给wiredTiger引擎的内存。
分享:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区