在Ubuntu上优化MongoDB内存可从以下方面入手:
- 调整WiredTiger缓存大小
修改/etc/mongod.conf中storage.wiredTiger.engineConfig.cacheSizeGB参数,建议设置为物理内存的50%-75%,避免占用过多内存。 - 启用内存映射优化
确保使用WiredTiger存储引擎(默认),其内存映射机制可高效利用内存缓存数据。 - 优化系统内存管理
- 关闭不必要的服务,减少系统内存占用。
- 调整
vm.swappiness参数(建议设为10-30),控制内存不足时使用Swap的比例。
- 监控与调优
- 使用
mongostat和mongotop监控内存使用情况,重点关注cache命中率。 - 通过
explain()分析查询是否命中索引,避免全表扫描。
- 使用
- 硬件与配置优化
- 采用SSD存储,提升内存与磁盘的交互效率。
- 确保服务器内存充足,避免与其他内存密集型服务混用。
注:修改配置后需重启MongoDB生效,生产环境建议先在测试环境验证。