mongodb佔物理記憶體
ringa_lee
ringa_lee 2017-04-24 09:13:16
0
4
730

mongodb佔物理內存,我們一台伺服器8G內存,沒有開mongodb的時候,物理內存只佔11%,當開了mongodb,mongodb進程的內存顯示是60M,但物理內存已經是99%,請問是什麼原因?有沒有最佳化的辦法,我們是在WINDOWS系統.

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
伊谢尔伦

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

大家讲道理

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

迷茫

新的 MongoDB 引擎会认为自己是系统中唯一重要的服务,因此会尽量占用内存来作为自己的缓存(不是操作系统的缓存)。如果你需要为其它进程保留内存,或者有多个 MongoDB 实例,可以使用 --cacheSizeGB 参数来限制 MongoDB 的缓存大小。

刘奇

我写了脚本每天凌晨清除缓存。。。
http://onwise.xyz/2017/02/23/...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!