原因:
MongoDB为了优化本身的读写效率,将内存当作缓存,所以读写的次数越多,缓存就越大。默认值为 50% *(RAM - 1GB)或者 256MB,从MongoDB3.4开始,WiredTiger内部缓存默认使用默认值中较大的一个。
解决办法:
修改config/mongod.cfg配置
dbpath=/data/app/mongodb4.2.8/data/rs1 #MongoDB数据安装目录
logpath=/data/app/mongodb4.2.8/log/rs1.log #日志打印的目录
journal=true #数据是否故障恢复
port=27000 #端口
replSet=rs #复制集名称
logappend=true #复制集日志是以追加的方式进行
fork = true #是否后台启动
bind_ip=0.0.0.0
storageEngine=WiredTiger #设置存储引擎,这是默认的
wiredTigerCacheSizeGB=8 #限制缓存使用内存的大小
maxConns=10000 #连接数
解释:
--wiredTigerCacheSizeGB 8 限制缓存使用内存大小为8GB,这样MongoDB使用的内存就是(8GB-1GB)* 50%,也就是3.5g