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