TiDB增加新的节点数据怎么均衡

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0
  • 【问题描述】:TiDB增加新的节点数据怎么均衡

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

建议从官网 region 调度相关内容开始了解。我先只说几个比较重要的方面:

1:扩容新的 TiKV实例后,会以 region 做为最小调度粒度,往新扩容的实例上迁移副本以及transfer leader

2:region 自动调度主要出于两个目的:均衡各个 TiKV实例剩余存储容量以及均衡各个 TiKV实例的计算能力(比如在实例之间均衡 Leader 节点,hot read/write )

另外还可以参考如下实践

https://pingcap.com/docs-cn/stable/reference/best-practices/massive-regions/#海量-region-集群调优最佳实践

我想了解一下,添加tikv之后,数据是自动均衡数据,还是需要手动均衡数据?如果自动均衡的话网络带宽在哪儿设置?如果需要手动数据均衡,那怎么均衡数据?网络带宽能限速么? 数据均衡过程中影响业务正常使用么?

自动调度。做个测试很容易观察出来。

没有宽带的限制,有每次调度 region 个数的限制。具体参考一下 pd-ctl 工具的介绍:

https://pingcap.com/docs-cn/stable/reference/tools/pd-control/

集群是怎么计算某一个region需要移动到新的节点上的?如果数据量很大,那数据均衡需要花很长的时间才能均衡完成,有什么好的办法控制么?若在大量计算和数据均衡同时进行,那影响业务正常运行,这个怎么破。。

内部实现上是通过计算每个实例的 score 分数,将 score 分数高的往 score 分数低的迁移。用户只需要关注剩余存储容量、leader 个数、hot write/read 是否均衡。如上面所讲,建议仔细了解一下 pd-ctl 上讲到的相关调度 scheduler的配置。

好的,谢谢,我仔细阅读阅读

:+1::+1::+1:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。