MongoDB的主配置文件通常位于/etc/mongod.conf,需使用root权限编辑该文件:
sudo vi /etc/mongod.conf
MongoDB(3.2及以上版本)默认使用WiredTiger存储引擎,其缓存大小通过storage.wiredTiger.engineConfig.cacheSizeGB参数控制。该参数决定MongoDB可用的最大内存(用于数据缓存、索引等)。
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 10 # 单位为GB,支持浮点数(如5.5GB)
为优化MongoDB内存使用效率,需修改系统内核参数:
/etc/sysctl.conf,添加以下内容:vm.nr_hugepages = 0
vm.swappiness = 10
sudo sysctl -p
若系统启用了ulimit限制,需确保MongoDB进程可占用足够内存。编辑/etc/security/limits.conf,添加以下内容(针对mongod用户):
mongod soft memlock unlimited
mongod hard memlock unlimited
此设置允许MongoDB进程锁定无限内存(需配合vm.nr_hugepages = 0使用)。
修改配置文件后,需重启MongoDB服务:
sudo systemctl restart mongod
通过MongoDB Shell查看当前内存使用状态,确认配置是否正确应用:
mongo --eval 'db.serverStatus().mem'
输出结果中的wiredTiger.cache部分会显示缓存大小(如bytes dirty、bytes valid),可通过db.serverStatus().wiredTiger.cache查看更详细的缓存信息(如缓存命中率、脏数据比例)。
db.serverStatus()、mongostat等工具监控内存使用情况,根据业务负载(如读写频率、数据量增长)动态调整cacheSizeGB参数。