部署选项
选择合适的硬件
- 优先使用SSD。
- 确认是本地存储还是远程存储,并作出相应的措施。
- 使用RAID来保护硬件缺陷和恢复方案。推荐使用RAID-10。
RAM
- 经常访问的item最好缓存在RAM中,以便MongoDB可以提供最佳的响应时间。
- 确保有足够的RAM来容纳索引,否则将对生产性能产生严重影响。
索引
索引会严重影响性能,要选择合适的索引。索引的字段最好不要更改。
如果写操作修改了索引字段,MongoDB将更新全部此字段相关的索引。
为分片做准备
- 如果不确定的话最好在开始时不要添加分片。
- 选择合适的字段作为分片键。
- 数据的分裂迁移是自动的,最好选择适当的窗口期。
操作系统配置的最佳实践
- 选择XFS文件系统。
- 修改Linux文件数限制。
- 禁止transparent huge pages 和NUMA
- 修改默认的TCP keeplalive 为300秒。
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
用复制集保证高可用
- 为了保证高可用,最好有3个复制集。
- 确保MongoDB实例有0或1票。
- 确保MongoDB实例之间是双向的网络连接。
安全配置
- 关闭MongoDB数据库服务器的外部开放接口,只保留可供ssh登录的端口。
- 开启MongoDB认证模块。
- 通过bind_ip限制外部访问ip。
- 创建应用用户,只给定其允许使用的权限。
相关文章
- mongodb生产部署手册
- mongodb:实时数据同步(一)
- MongoDB-4.0 使用注意事项
- mongodb-4.x复制集数据同步(replica-set-sync)
- MongoDB-4.x 关于shard在启动时报错 Got signal: 6 (Aborted).