MongoDB占用内存非常高,这是因为官方为了提升存储的效率,设计就这么设计的。测试环境跑了两台MongoDB,运行久了的话可能就会碰到内存不够用的情况。在MongoDB 3.4版本之前,当你的内存大于1GB,MongoDB会用掉 内存的60% – 1GB 的内存作为缓存,当你的内存小于1GB,mongodb会直接用掉1GB。从3.4之后,MongoDB对做了下修改,最低256M,默认MongoDB会用掉 内存的50% – 1GB 的内存作为缓存。以下是官方的一些说明:
那么如果一台服务器上有多个MongoDB,只需要修改成如下配置即可。
例如下面是修改后的配置:/etc/mongod.conf,限制到 1GB内存。
# Where and how to store data. storage: dbPath: /var/lib/mongo journal: enabled: true wiredTiger: engineConfig: cacheSizeGB: 1
配置完成后重启MongoDB。
参考链接:https://docs.mongodb.com/manual/reference/configuration-options/index.html#storage-wiredtiger-options