限制mongodb内存占用过高方法
1.mongodb必须是以服务的方式启动的。即能用service mongodb start的方式启动
资源限制用这个命令systemctl set-property <servicename> <field>=<value>
CentOS7 内存的设置方法为:
systemctl set-property mongod1 MemoryLimit=10G
在Mongodb对应的config中改如下参数
storage:
#dbPath: /var/lib/mongo
dbPath: /home/mongodb/rs/data
journal:
enabled: true
directoryPerDB: true
engine: wiredTiger
# mmapv1:
wiredTiger:
engineConfig:
cacheSizeGB: 5
这个数字是你设置的limit x 60% - 1G,最小1G。
如果是以进程的方式启动,此时mongodb 占用内存很高怎么办呢?
可以执行以下两条命令:
#sync
#echo 3 > /proc/sys/vm/drop_caches
然后使用free -m 即可以看到内存下来了