centos

CentOS如何优化MongoDB存储空间

小樊
46
2025-08-08 11:55:17
栏目: 云计算

以下是在CentOS上优化MongoDB存储空间的方法:

  1. 启用WiredTiger存储引擎及压缩

    • 确保使用WiredTiger引擎(MongoDB 3.2+默认),在/etc/mongod.conf中配置:
      storage:
        engine: wiredTiger
        wiredTiger:
          engineConfig:
            compression: snappy  # 可选snappy/zlib/zstd,平衡压缩比与性能
      
    • 重启服务生效:sudo systemctl restart mongod
  2. 清理无用数据与碎片

    • 删除无效数据:db.collection.remove({条件})db.dropDatabase()
    • 使用compact命令整理碎片并释放空间:
      # 压缩单个集合
      db.runCommand({compact: "集合名", compression: "zstd"})
      # 压缩整个数据库
      db.runCommand({compact: "数据库名", compression: "zstd"})
      
      注意:WiredTiger下compact会释放空间,MMAPv1仅重建索引。
  3. 优化数据模型与索引

    • 避免大文档,拆分冗余数据。
    • 为高频查询字段创建索引,避免过度索引。
  4. 调整日志与缓存配置

    • 限制日志文件大小:在/etc/mongod.conf中设置systemLog.logRotate: reopen,并定期清理旧日志。
    • 调整WiredTiger缓存大小(默认为物理内存的50%),避免占用过多内存:
      storage:
        wiredTiger:
          engineConfig:
            cacheSizeGB: 4  # 根据服务器内存调整
      
  5. 扩展存储空间

    • 若磁盘不足,可扩展服务器磁盘或使用虚拟机磁盘扩容,确保MongoDB数据目录(默认/var/lib/mongodb)有足够空间。

操作前务必备份数据,避免误操作导致数据丢失。

0
看了该问题的人还看了