在Debian上优化MongoDB内存使用可从以下方面入手:
- 调整WiredTiger缓存大小:修改
/etc/mongod.conf中storage.wiredTiger.engineConfig.cacheSizeGB参数,建议设置为系统内存的50%-80%。 - 优化索引:为常用查询字段创建索引,使用复合索引优化多字段查询,避免全表扫描。
- 限制查询数据量:通过
limit()方法和投影操作符减少返回数据量。 - 监控与分析:使用
db.serverStatus().mem查看内存使用情况,结合mongostat/mongotop定位性能瓶颈。 - 调整系统参数:
- 降低
vm.swappiness值(如设为0)减少Swap依赖。 - 通过
systemd服务文件限制MongoDB内存和CPU使用。
- 降低
- 定期维护:清理过期数据、归档历史数据,使用
compact命令回收存储空间。 - 硬件与扩展:升级服务器内存,或通过分片(Sharding)将数据分布到多台服务器。
修改配置后需重启MongoDB服务并验证性能。