database - MongoDB分片集群,平衡器关闭时的行为?
问题描述
目前使用 4.2.8 社区版。拥有一个包含 20 多个分片节点的分片集群。
如果我关闭平衡器,插入的文档是否仍会分发到正确的分片节点——假设已经使用了一个好的分片键?我相信我选择了一个好的散列密钥,并且数据似乎已经很好地分发了,但是,我在高峰流量期间遇到了插入速度的一些减慢。
我只想让平衡器在一天中的预定时间运行,以最大限度地提高集群的性能,但我不知道这是否意味着所有插入都会进入主分片并最大限度地利用磁盘。有人可以澄清吗?
解决方案
是的,您的数据将被插入到适当的分片中。
但是,如果正确选择了 shard-key,那么平衡器将在大部分时间处于空闲状态。因此,除非您必须进行一些维护或升级,否则我认为没有任何理由禁用平衡器。
当您在高峰流量期间看到插入速度变慢时,请检查平衡器状态,然后查看平衡器是否可能是罪魁祸首。
有一个内置函数(感谢@D. SM),请参阅调度平衡窗口
在某些情况下,特别是当您的数据集增长缓慢并且迁移可能会影响性能时,确保平衡器仅在特定时间处于活动状态很有用。以下过程指定了 activeWindow,这是平衡器能够迁移块的时间范围
推荐阅读
- javascript - 根据时间戳删除数组中的“类似项目”对象
- reactjs - Reactjs - 具有不同数量参数的 handleChange
- reporting-services - 在 SSRS 订阅中编辑指向报表服务器的 URL 链接
- javascript - React Native - 使用“json [0]”获取不起作用
- django - 如何编辑以下 Django Moellform
- php - php页面查询需要15分钟,phpmyadmin上同样的查询需要3秒
- arcgis - 使用 ArcGIS API for JavaScript 时如何使用外部数据
- java - 如何压缩数组的原始整数数据?
- audio - Aframe 音频资产 - 正确断开音频源
- javascript - 无法用 Array.length 计算