以下是Debian系统上优化MongoDB性能的关键技巧:
一、硬件与系统优化
- 使用SSD存储:提升磁盘I/O性能,降低延迟。
- 增加内存:确保足够内存缓存数据和索引,建议设置为系统内存的50%-80%。
- 多核CPU:提升并发处理能力。
二、配置参数优化
- 调整WiredTiger缓存:修改
/etc/mongod.conf中storage.wiredTiger.engineConfig.cacheSizeGB参数,建议设为物理内存的60%-80%。 - 启用压缩:设置
storage.wiredTiger.collectionConfig.blockCompressor=snappy减少存储占用。 - 优化网络参数:调整
net.maxIncomingConnections和net.maxOutgoingConnections适应高并发。
三、索引优化
- 创建合适索引:为高频查询字段创建单字段或复合索引,使用
db.collection.createIndex()。 - 覆盖索引:设计包含查询所需字段的索引,避免回表查询。
- 定期维护索引:通过
db.collection.reIndex()重建索引,减少碎片。
四、查询优化
- 避免全表扫描:确保查询条件能利用索引,使用
explain()分析执行计划。 - 限制返回字段:通过投影(
{field: 1})减少数据传输量。 - 批量操作:使用批量插入/更新减少网络开销。
五、分片与复制集
- 分片集群:对大规模数据集水平扩展,分散存储压力。
- 复制集:提高数据冗余和读取性能,配置
replication.replSetName。
六、监控与维护
- 使用监控工具:通过
mongostat、mongotop或第三方工具(如PMM)实时监控性能。 - 定期清理数据:删除冗余数据,归档历史数据以释放空间。
- 升级版本:及时更新到最新稳定版,获取性能优化和新特性。
注意:修改配置后需重启MongoDB服务生效,建议先在测试环境验证优化效果[1,2,3,4,5,6,7,8,9,10,11]。