关于mongoDB发生 out of memory.的问题

1 问题描述

应用程序和MongoDB运行时,在查询和读取文件的时候发生的文件量较多。

关于mongoDB发生 out of memory.的问题
文章图片

1.查询索引
db.page.getIndexes()

2.配置conf
# Where and how to store data. storage: dbPath: /var/lib/mongo #dbPath: /mongodata journal: enabled: true #engine: mmapv1: smallFiles: true wiredTiger: engineConfig: configString : cache_size=512M

【关于mongoDB发生 out of memory.的问题】或者
systemLog: destination: file path: "D:\\db.log" logAppend: true storage: dbPath: "D:\\db" directoryPerDB: true journal: enabled: true wiredTiger: engineConfig: cacheSizeGB: 0.256 net: bindIp: 127.0.0.1 port: 27017 security: authorization: disabled

出现这种情况的原因:
1.索引问题,加上指定的内存,会导致启动索引会吃掉所有内存导致杀死进程,以致于mongodb内存溢出关机,mongodb的重建索引的时候,吃掉所有内存。 2.就是决定它自己要用多少内存的代码了。先留出1G,然后再留出40%,剩下的能吃就吃!这种情况在机器内存少的时候没有出现,大概是因为内存少的时候,mongod 留出的比例比较高,内核就没那么卖力地把数据往 swap 上挪了,结果造成内核挪多少,mongod 吃多少……

解决办法:
要配置mongoDB的内存为MB

当你的内存大于1GB,mongodb会用掉 内存的60% - 1GB 的内存作为缓存;
当你的内存小于1GB,mongodb会直接用掉1GB。

    推荐阅读