Ubuntu环境下MongoDB内存限制配置建议
MongoDB默认使用WiredTiger存储引擎(推荐生产环境使用),其内存限制主要通过storage.wiredTiger.engineConfig.cacheSizeGB参数控制。该参数定义了WiredTiger可使用的最大内存量,直接影响数据库的缓存效率和查询性能。
推荐设置为系统总物理内存的50%-70%(如8GB内存服务器可设置为4-5GB)。这一范围的依据是:
cacheSizeGB设置为1-1.5GB(占总内存的50%-75%),同时降低vm.swappiness(如设为10)以减少交换空间使用。cacheSizeGB(如12-14GB),但需监控内存使用情况(如通过db.serverStatus().mem命令),避免过度占用导致其他进程无法运行。编辑MongoDB配置文件(/etc/mongod.conf),找到storage部分,添加或修改以下内容:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 根据系统内存调整,如4GB
保存后重启MongoDB服务使配置生效:
sudo systemctl restart mongod
db.serverStatus().wiredTiger.cache
输出中的bytes dirty(脏页数据)和bytes valid(有效缓存数据)之和应接近配置的cacheSizeGB。top、htop命令查看MongoDB进程的内存占用,或通过mongostat、mongotop工具监控内存使用趋势,根据实际情况调整cacheSizeGB。cacheSizeGB设置为系统总内存的100%,需为操作系统和其他进程预留内存;cacheSizeGB以保持性能。