以下是优化Ubuntu上MongoDB配置的关键措施:
硬件与系统优化
- 使用SSD:提升磁盘读写速度。
- 增加内存:确保足够内存供MongoDB缓存数据,建议设置为物理内存的50%-75%。
- 关闭非必要服务:减少系统负载,如防火墙、SELinux等。
MongoDB配置优化
- 调整存储引擎参数:
- WiredTiger缓存大小:在
/etc/mongod.conf中设置storage.wiredTiger.engineConfig.cacheSizeGB(建议50%-75%物理内存)。 - 启用压缩:
storage.wiredTiger.collectionConfig.blockCompressor: snappy(减少磁盘占用)。
- WiredTiger缓存大小:在
- 优化网络与日志:
- 调整
net.maxIncomingConnections和net.maxOutgoingConnections适应高并发。 - 启用日志记录:
storage.journal.enabled: true,并合理设置commitIntervalMs。
- 调整
- 分片与复制集:
- 大数据集使用分片(
sh.enableSharding)水平扩展。 - 配置副本集(
rs.initiate)提高可用性和读取性能。
- 大数据集使用分片(
索引与查询优化
- 创建高效索引:为高频查询字段创建索引,避免全表扫描。
- 覆盖索引:设计索引包含查询所需字段,减少回表查询。
- 分析查询计划:使用
explain()方法优化慢查询。
监控与维护
- 工具监控:使用
mongostat、mongotop或第三方工具(如Prometheus+Grafana)监控性能。 - 定期维护:备份数据(
mongodump/mongorestore)、重建索引、清理无用数据。
其他优化
- 文件系统优化:使用XFS文件系统,禁用透明大页(THP)。
- 内核参数调优:调整
vm.swappiness、ulimit等参数以适配数据库负载。
注意:修改配置前需在测试环境验证,优先通过mongod.conf文件修改,避免直接命令行参数覆盖。
参考来源: