mongodb占物理内存

知足常乐
  • 6

mongodb占物理内存,我们一台服务器8G内存,没有开mongodb的时候,物理内存只占11%,当开了mongodb,mongodb进程的内存显示是60M,但物理内存已经是99%,请问是什么原因?有没有优化的办法,我们是在WINDOWS系统.

回复
阅读 7k
4 个回答

我记得,一个叫唐建法的人说:mongodb不是吃内存,而是它设计初衷就是要故意占内存。

mongodb本身是不做内存管理的,它的内存管理完全依赖于系统。你可以用系统性能监视器看下内存和虚拟内存。简单点来说你有多少内存mongdb就会吃多少,就是这么贪得无厌,它会把绝大部分热数据都会放在内存里来提升性能,毕竟这也是它的优点。
我们的服务器是windows server 2008,有32G内存,运行了一段时间后,也是被吃光光,但性能让人惊喜,但那台服务器上不光只有mongodb,所以经常影响到其他程序,后来我们尝试用 windows的系统资源管理器WSRM,限制mongodb进程的内存,确实有效果你可以尝试一下。
但是我是前年开始使用mongodb的,当时版本比较老,限制内存后mongodb很不稳定,偶尔挂掉,看日志显示大体意思是找不到映射的内存了。所以后来我们放弃了限制内存,改用每天定点用程序使用mongodb的命令释放内存{closeAllDatabases:1}
这个命令也是有成本的,会阻塞到命令完整,而且刚释放完后效率会降低,要经过一段时间的“热身”才能慢慢恢复。
我觉得后面这种方法不错,并且通过这两年的观察一切都比较稳定。当然你们要是能单独给mongodb一台服务器那是再好不过的了。

你知道吗?

宣传栏