如何解决Mongodb内存不足怎么解决过大问题

对集合执行一个大排序操作(如聚合),出现以下错误:(测试版本:MongoDB 3.0.6)
& db.bigdata.aggregate(
{$group : {_id : "$range", total : { $sum : 1 }}},
{$sort : {total : -1}}
aggregate failed
at Error (&anonymous&)
at doassert (src/mongo/shell/assert.js:11:14)
Error: command failed: {
"errmsg" : "exception: Sort exceeded memory limit of
but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.",
"code" : 16819,
参考文档: Memory Restrictions
在MongoDB中,内排序大内存限制最大为100M,如果执行一个更大的排序,需要使用 allowDiskUse 选项来将数据写到临时文件来排序。
在查询语句中添加 allowDiskUse 选项:
db.bigdata.aggregate(
{$group : {_id : "$range", total : { $sum : 1 }}},
{$sort : {total : -1}}
{allowDiskUse: true}
以上所述是小编给大家介绍的解决MongoDB 排序超过内存限制的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!mongodb 内存使用率低的问题?
[问题点数:200分,结帖人quwei197874]
mongodb 内存使用率低的问题?
[问题点数:200分,结帖人quwei197874]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年7月 Linux/Unix社区大版内专家分月排行榜第二2012年6月 Linux/Unix社区大版内专家分月排行榜第二2011年5月 Linux/Unix社区大版内专家分月排行榜第二2011年4月 Linux/Unix社区大版内专家分月排行榜第二2011年3月 Linux/Unix社区大版内专家分月排行榜第二2010年10月 Linux/Unix社区大版内专家分月排行榜第二2010年9月 Linux/Unix社区大版内专家分月排行榜第二
2011年9月 Linux/Unix社区大版内专家分月排行榜第三2010年12月 Linux/Unix社区大版内专家分月排行榜第三2010年11月 Linux/Unix社区大版内专家分月排行榜第三2010年9月 C/C++大版内专家分月排行榜第三
2013年7月 C/C++大版内专家分月排行榜第一
2015年9月 C/C++大版内专家分月排行榜第二2013年6月 C/C++大版内专家分月排行榜第二
2013年7月 C/C++大版内专家分月排行榜第一
2015年9月 C/C++大版内专家分月排行榜第二2013年6月 C/C++大版内专家分月排行榜第二
2013年7月 C/C++大版内专家分月排行榜第一
2015年9月 C/C++大版内专家分月排行榜第二2013年6月 C/C++大版内专家分月排行榜第二
2012年8月 C/C++大版内专家分月排行榜第三2012年7月 C/C++大版内专家分月排行榜第三
2012年1月 .NET技术大版内专家分月排行榜第一2011年12月 .NET技术大版内专家分月排行榜第一2011年11月 .NET技术大版内专家分月排行榜第一2008年3月 .NET技术大版内专家分月排行榜第一
2010年4月 .NET技术大版内专家分月排行榜第二2008年2月 .NET技术大版内专家分月排行榜第二
匿名用户不能发表回复!|限制mongodb内存占用过高方法 - 猫儿爹 - 博客园
随笔 - 100, 文章 - 0, 评论 - 0, 引用 - 0
1.mongodb必须是以服务的方式启动的。即能用service mongodb start的方式启动
资源限制用这个命令systemctl set-property &servicename& &field&=&value&
CentOS7 内存的设置方法为:
systemctl set-property mongod1 MemoryLimit=10G
&在Mongodb对应的config中改如下参数
& #dbPath: /var/lib/mongo
& dbPath: /home/mongodb/rs/data
& journal:
&&& enabled: true
& directoryPerDB: true
& engine: wiredTiger
#& mmapv1:
& wiredTiger:
&&&& engineConfig:
&&&&&&&&cacheSizeGB: 5
这个数字是你设置的limit x 60% - 1G,最小1G。
如果是以进程的方式启动,此时mongodb 占用内存很高怎么办呢?
可以执行以下两条命令:
#echo 3 & /proc/sys/vm/drop_caches
然后使用free -m 即可以看到内存下来了

我要回帖

更多关于 内存不足怎么解决 的文章

 

随机推荐