pd中调度参数请教

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
v5.0.0-rc
【问题描述】
关于region的调度有些疑问:
1、通过scheduler show,我们可以看到当前设置了哪些调度参数,如图中有balance-region和balance-leader等
是不是只有设置了balance-region和balance-leader这两个参数,我们才可以通过store weight 1 2 3来设置store1的leader调度权重为2,region调度权重为3,使得region的leader和peer优先往这个节点上调度?store1上没有balance-region和balance-leader的话,是不是在store1上设置了weight,不生效?


2、balance-region和balance-leader的具体的计算规则是什么呢?


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

关于 pd 对 region 和 leader 调度相关的问题建议看下下面的文档:

https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices

理论上,如果把 region 和 leader 的 scheduler 调度器移除后,相当于调度停止了,所以配置 weight 可能是没有意义的~

好的,谢谢,我看了一下那个官网上地介绍,
1、balance-region和balance-leader的具体的计算规则其实就是通过leader-weight和region-weight这两个参数来控制地,是吧,通过输入不同地值,会根据这个值来对leader和region进行调度,例如5个region,3个tikv实例,如果我设置其中一个实例的leader-weight为3,那么这个实例上面的5个region,会有3个是leader,是吧?
2、和上面的第1点没有联系,假如我将1个tikv实例balance-leader和balance-region都删除了的话,调度停止,那么leader和region还会往这个节点上调度嘛?
3、假如我将所有tikv实例balance-leader和balance-region都删除了的话,调度停止,那么leader和region的存储是随机的了吧,这个是不是就会出现leader和region大量出现在其中的某一个tikv实例上?

建议再看下这个文档, region 和 leader balance 是调度器,调度器没有了,理论上没有对应的调度产生。此时和设置 region-weght 和 leader-weight 多少没有关系。所以理论上,不会出现调度器都没有的情况下,集群还会不断产生调度的情况 ~

另外,PD 的调度算法,在上面的文档有提到,建议再看下,如 region 的大小,leader 的大小,剩余磁盘空间都会影响到调度。 region-weight 和 leader-weight 参数可以在一定程度上影响调度结果,但是还是会以 PD 调度算法来进行。一般情况下,使用默认值即可,除非服务器磁盘空间本身配比不均衡。

建议在测试环境进行下试验观察下具体的情况哈,比如:

 1. 暂停 leader-balance 或 region-balance scheduler,观察 pd 监控面板调度相关的情况
 2. 调整 leader-weight 或 region-weight,观察 pd 监控面板 region size ,leader size ,region count ,leader count 的情况
 3. region balacne 是分段函数,调整 high-space-ratio 和 low-space-ratio ,观察下这两个参数对 region 调度的影响

好的,谢谢,我再看看,试试,
我那个第二个问题一开始是想要直到就是没有调度策略了,根据这个:“所以理论上,不会出现调度器都没有的情况下,集群还会不断产生调度的情况 ~”,也就是说只会往有调度策略的节点上调度是吧?
我那个第三个问题一开始是想要直到就是没有调度策略了,那么我数据region具体会如何存到tikv中,并且落盘?

调度是以 Region 为粒度进行,并且 PD 只是承担 Region id、Peer id 的分配,以及调度,但并不能决定数据的落盘(Raft 多数派)和存储(RocksDB-KV 以及 RocksDB-raft),数据的落盘和存储由 TiKV 担任。建议测试下,在 remove 调度器后,观察下前端写入情况~

是的,调度算法由 PD 来确认,如果把集群的 balance-region 调度器 pause 或者 remove,那么集群的 region balance 的 operator 理论上不会出现。当前 pause 和 remove balance-region 调度器只支持全局配置,没有细化到一个特定的 store,参考命令如下,建议测试验证下 :

https://docs.pingcap.com/zh/tidb/stable/pd-control#scheduler-show--add--remove--pause--resume--config

好的,谢谢,我试一下

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