商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Ubuntu中MongoDB的存储引擎怎么选

Ubuntu中MongoDB的存储引擎怎么选

  发布于2026-08-20 阅读(0)

扫一扫,手机访问

Ubuntu环境下MongoDB存储引擎选择攻略

Ubuntu中MongoDB的存储引擎怎么选

快速建议

  • 新部署优先选择WiredTiger(MongoDB 3.2+ 的默认引擎),具备文档级并发MVCC多文档事务(MongoDB 4.0+)压缩检查点等能力,覆盖绝大多数在线业务与混合负载。一般无需更改即为最佳起点。
  • 旧系统若仍在使用MMAPv1,应尽快迁移;该引擎为早期方案,锁粒度粗(集合级)不支持事务,在MongoDB 4.0起已被弃用,新项目不建议采用。
  • 微秒级延迟且可容忍数据丢失的场景(如实时缓存/会话),可考虑In-Memory引擎,需配合复制集保障高可用,并准备充足内存。

引擎对比与适用场景

引擎并发与事务持久化与恢复压缩典型场景注意事项WiredTiger文档级并发、MVCC;支持多文档事务(4.0+)检查点 + WAL(Journal);默认journal.enabled: trueSnappy(默认)/ zlib通用OLTP/OLAP、高并发读写、需要事务与压缩合理设置缓存,避免与系统争用内存MMAPv1集合级锁、无事务依赖文件系统页缓存无内置块压缩仅遗留系统、极低写并发的读为主场景官方已弃用,不推荐新部署In-Memory极高并发、内存级延迟数据不落盘;需复制集提升可用性不涉及磁盘压缩实时分析、排行榜、会话缓存成本高,需充足内存与容灾设计说明:WiredTiger为默认且功能完备;MMAPv1已过时;In-Memory用于特殊低延迟场景。

如何做出选择

  • 需要事务一致性、文档级高并发、节省磁盘空间(压缩)与良好恢复能力:选WiredTiger
  • 已有老版本且难以迁移、只读或极少写、短期过渡:可临时保留MMAPv1,但应规划迁移至WiredTiger。
  • 追求极低延迟且可接受数据丢失风险:选In-Memory,并务必部署复制集以保高可用。

Ubuntu下WiredTiger关键配置要点解析

  • 缓存大小:在**/etc/mongod.conf中设置storage.wiredTiger.engineConfig.cacheSizeGB,建议为物理内存的50%–75%;WiredTiger默认公式为max((RAM−1GB), 256MB)**,避免过大导致系统OOM。
  • 压缩算法:collection级别设置blockCompressor(如snappyzlib),在CPU与空间之间权衡。
  • 持久化:确保storage.journal.enabled: true(默认开启),利用JournalCheckpoint保障崩溃恢复。
  • 存储路径与权限:默认**/var/lib/mongodb**;如需变更,修改storage.dbPath并设定目录属主为mongodb:mongodb,重启服务生效。
  • 验证引擎:连接Shell执行db.runCommand({ connectionStatus: 1 }).storageEngine查看当前引擎。

硬件与部署建议

  • 存储与文件系统:优先SSD/NVMe,阵列建议RAID 10;文件系统选ext4XFS(大文件与高并发更友好)。
  • 高可用与扩展:上线复制集(至少3节点)保障高可用;数据量大时考虑分片集群水平扩展。
  • 监控与容量:用mongostatmongotopPrometheus+Grafana监控;设置磁盘空间阈值告警(如剩余20%)。
本文转载于:https://www.yisu.com/ask/23480307.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注