温馨提示×

MongoDB在Ubuntu上的存储引擎选择与配置

小樊
52
2025-08-21 23:43:28
栏目: 云计算

一、存储引擎选择

MongoDB支持多种存储引擎,Ubuntu上常用的是WiredTiger,它是默认引擎,适合大多数场景,尤其适合需要事务、文档级锁和压缩的场景。

  • WiredTiger:支持文档级并发控制、事务(MongoDB 4.0+)、数据压缩(默认Snappy,可配置为Zlib),性能和存储效率均衡。
  • MMAPv1:早期默认引擎,不支持事务和压缩,仅适用于读密集型且无需高并发控制的旧系统(MongoDB 4.2已弃用)。
  • In-Memory:仅适用于企业版,数据仅存内存,延迟极低,但需较高内存配置。

二、配置方法

通过修改配置文件/etc/mongod.conf设置存储引擎,无需额外安装插件。

  1. 修改配置文件

    sudo nano /etc/mongod.conf
    

    storage模块中指定引擎:

    storage:
      engine: wiredTiger  # 选择WiredTiger引擎
      dbPath: /var/lib/mongodb  # 数据存储路径(可自定义)
      journal:
        enabled: true  # 启用日志(确保数据持久性)
    
    • 若需配置WiredTiger缓存大小(默认为物理内存的50%),可添加:
      wiredTiger:
        engineConfig:
          cacheSizeGB: 4  # 设置为4GB(根据服务器内存调整)
      
  2. 重启服务生效

    sudo systemctl restart mongod
    
  3. 验证引擎
    连接MongoDB后执行命令:

    use admin
    db.runCommand({getParameter: 1, storageEngine: 1})
    

    返回结果中name字段应为wiredTiger

三、注意事项

  • 数据兼容性:切换引擎前需备份数据,不同引擎间数据格式可能不兼容。
  • 性能调优
    • WiredTiger可通过调整cacheSizeGB优化内存使用,避免与其他服务争抢内存。
    • 禁用不必要的日志(如测试环境)可提升写入性能,但会降低数据安全性。
  • 企业场景:若需内存引擎,需购买MongoDB企业版或使用Percona Server for MongoDB的RocksDB引擎。

四、参考资料

0