首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDb副本-服务器因为内存不足而被杀死?

MongoDb副本-服务器因为内存不足而被杀死?
EN

Stack Overflow用户
提问于 2012-03-29 09:21:18
回答 2查看 2.4K关注 0票数 2

这里需要一个巨大的帮助,因为这影响了我们的生产实例。

其中一个副本服务器由于内存不足而失败(请参阅下面的kern.log块)

代码语言:javascript
复制
kernel: [80110.848341] Out of memory: kill process 4643 (mongod) score 214181 or a child
kernel: [80110.848349] Killed process 4643 (mongod)

更新

代码语言:javascript
复制
kernel: mongod invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0
kernel: [85544.157191] mongod cpuset=/ mems_allowed=0
kernel: [85544.157195] Pid: 7545, comm: mongod Not tainted 2.6.32-318-ec2

洞察:

  1. 主服务器DB大小为50 DB,其中30 DB由索引填充。
  2. 主服务器有7GB Ram,而辅助服务器有3.1GB Ram。
  3. 这两台服务器分别是64位计算机和运行Debian/Ubuntu的服务器。
  4. 在这两台服务器上运行Mongo 2.0.2

注意:我最近在吉拉-蒙戈的网站上看到了一个类似的问题已经产生了 --目前还没有答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-29 09:37:21

在这些实例上启用了交换吗?虽然mongoDB操作通常不需要,但当您遇到OOM情况时,它可以防止进程被内核杀死。这里提到的是:

http://www.mongodb.org/display/DOCS/Production+Notes#ProductionNotes-Swap

所引用的问题是在完全重新同步而不是正在进行的生产复制过程中发生的--这也是您正在做的吗?

一旦稳定下来,看看mongostat或MMS中的Res内存,如果超过或接近3GB,您应该考虑升级次要内存。

票数 5
EN

Stack Overflow用户

发布于 2012-03-30 02:53:47

我也有过类似的问题。需要检查的事情之一是,您有多少个打开的连接。运行lsof命令,查看与mongod进程关联的打开文件。尝试禁用日志记录,并查看是否看到较小数量的打开文件。如果是的话,让副本赶上,然后重新启用日志记录。也许能帮上忙。添加交换应该也有帮助,如果可能的话,暂时增加RAM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9922491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档