小编Bil*_*ill的帖子

Mongodb 迁移阈值控制?

我正在寻找一种方法来控制 mongodb 中的分片集合迁移阈值。这些阈值在https://docs.mongodb.com/manual/core/sharding-balancer-administration/#sharding-migration-thresholds 中有描述

我在这些值中看到的是,他们针对少量块 (0-20: 2, 20-80: 4, 80+: 8) 调整了大约 10% 的块计数的迁移阈值。在此之上,它被锁定在 8 个块:只有 8 个块计数在分片成员之间不同才会触发迁移活动。

对于我们具有高活动率和大量数据的集合,这会导致平衡抖动 - 几乎总是有 8 个块的差异,一直。由于分片集合的高交易率,有一系列完全可以接受的暂时不平衡的原因(我不会在这里讨论)。当我们关闭平衡器时,随着整个集群的活动发生变化,小的临时不平衡通常会被有机地纠正。开启平衡器后,当它完成一个迁移时,另一个(或多个并行)会立即触发。

像这样锁定阈值,我们更大的集合一直在颠簸 - 消耗我们真正想以其他方式使用的 IOPS 和网络带宽。这些微小的迁移也没有任何实际好处:如果我们谈论的是大型集合,那么相对于任何实际工作负载而言,8 个块可能是微不足道的数据量。因此,我们花费了大量精力来移动大量小片段,以实现零有效收益。

我很想找到一个配置文件设置 - 至少 - 允许我重新定义这些值。更好的是强制使用分数策略,例如集合中块数量的 10%。我在 mongo 文档中没有看到任何这种类型的控件,但可能会丢失它。

如果做不到这一点,我将不得不启动代码并自己重新调整它以从源代码构建,所以我希望有人已经解决了这个问题,而我只是看不出在哪里可以控制它。提前致谢!

data-migration mongodb

5
推荐指数
0
解决办法
113
查看次数

标签 统计

data-migration ×1

mongodb ×1