windows 环境下 mongodb 内存如何释放?

查看:145
本文介绍了windows 环境下 mongodb 内存如何释放?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

逐步将数据塞入mongodb,一项数据塞入完成就不去动它了。
但是虽然运行时间的增加,发现我的小小8G内存中有1G+的空间被mongo占用。
随着时间上升,还有增大的趋势。
mongo已经被我设置为服务,在关闭程序后,mongo进程仍然占用1G+的内存。

有3个问题想请教下:
1.我记得文档里说,mongo会自动将部分数据转移到硬盘里。请问转移是在什么时候发生?
2.在关闭程序后,已经停止对mongo的写入操作,如何释放内存中占用的空间,并确保已经转移到硬盘里?
3.如果我不关闭程序,内存是不是会被逐步占用直到被消耗完全吗?如果是的话windows环境下,如何对其内存占用做出限制?查了下这个问题,大部分是说 ulimit 这是linux的吧?

解决方案

  1. mongodb关闭之后内存会被释放。确认下你的服务是不是出了什么问题,导致没能关闭mongodb进程。
  2. 确认下你的mongodb版本号,mongodb 3.0的某几个版本有内存泄漏的BUG,到了mongodb 3.0.10和3.2.4之后的版本被修复,请确认下是否使用了有BUG的版本,如果是的话尝试升级。

最后,内存使用问题官方的FAQ就有: https://docs.mongodb.com/manu...

mongodb 3.4版本的Wiredtiger存储引擎(2.8版本引入,3.2版本默认)使用内存如下:

Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of either:

  • 50% of RAM minus 1 GB, or
  • 256 MB.

也就是默认情况下WT引擎就会使用至多50%的内存做cache,所以你的内存使用是完全没有问题的。如果你希望限制cache的内存大小,可以配置storage.wiredTiger.engineConfig.cacheSizeGB属性

这篇关于windows 环境下 mongodb 内存如何释放?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆