首页 > 解决方案 > MongoDB分片集群,平衡器关闭时的行为?

问题描述

目前使用 4.2.8 社区版。拥有一个包含 20 多个分片节点的分片集群。

如果我关闭平衡器,插入的文档是否仍会分发到正确的分片节点——假设已经使用了一个好的分片键?我相信我选择了一个好的散列密钥,并且数据似乎已经很好地分发了,但是,我在高峰流量期间遇到了插入速度的一些减慢。

我只想让平衡器在一天中的预定时间运行,以最大限度地提高集群的性能,但我不知道这是否意味着所有插入都会进入主分片并最大限度地利用磁盘。有人可以澄清吗?

标签: databasemongodbdistributedshardingbson

解决方案


是的,您的数据将被插入到适当的分片中。

但是,如果正确选择了 shard-key,那么平衡器将在大部分时间处于空闲状态。因此,除非您必须进行一些维护或升级,否则我认为没有任何理由禁用平衡器。

当您在高峰流量期间看到插入速度变慢时,请检查平衡器状态,然后查看平衡器是否可能是罪魁祸首。

有一个内置函数(感谢@D. SM),请参阅调度平衡窗口

在某些情况下,特别是当您的数据集增长缓慢并且迁移可能会影响性能时,确保平衡器仅在特定时间处于活动状态很有用。以下过程指定了 activeWindow,这是平衡器能够迁移块的时间范围


推荐阅读