MongoDB的内存使用策略是怎样的?


  • 註冊用戶

    在官方的文档上看到这样的描述,对于wiredTiger引擎:

    Via the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes. Data in the filesystem cache is compressed.

    意思是说,MongoDB当有可用内存使用的时候会一直占用下去直到占满吗?



  • MongoDB其本身并不管理内存,管理内存的是操作系统。

    这样也就好处,简化了MongoDB本身的工作。

    但是,会出现这么一个问题:MongoDB并不能很好地控制自已其会占多大内存。

    这样就会显得MongoDB在内存上显得贪得无厌,容易发生内存溢出。

    你的上个问题,我还有一个建议,把操作系统的虚拟内存设置到最大,试试: ulimit -v unlimited


  • Lv 1

    @AJW 

    你可以设置占用的比例,配置wiredTigerCacheSizeGB


  • 註冊用戶

    @asd

    谢谢,ulimit -v 已经设置成为是unlimited了。我也尝试通过CacheSizeGB将内存占用变大了,但是都没有解决问题。

    也许还是连接上的问题吧,我在另一台windows系统的电脑上也尝试做了实验,没有发生这样的问题,不知道这台服务器是为什么这么奇怪。


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待