mongodb - 内存占用过高

发现异常

今天发现有一台服务器mongod占了5个多G内存 这个太夸张了
然后搜索了一下,发现是mongo优化读写效率时会占用内存

内存增加的原因

mongo为了优化他的读写效率,将内存当做缓存,所以你读写次数越多,缓存就越大。默认值:
从3.4开始,WiredTiger内部缓存默认使用较大的一个, 我用的是4.1
50%(RAM - 1 GB),或256 MB。
例如,我是8G内存,那么最大缓存0.5*(8-1)=3.5G,看到了么。。。mongo默认3.5G都是他的缓存。

解决

在配置中限制mongo的缓存大小, 引擎需要更换为wiredTiger 默认的mmapv1依赖于mmap不能指定
官方也声称wiredTiger更加优秀

storage:
  dbPath: /www/server/mongodb/data
  directoryPerDB: true

  journal:
    enabled: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2
posted @ 2022-01-04 10:33  Z_DK  阅读(1497)  评论(0编辑  收藏  举报