PD调度基本概念
调度流程
调度中还有这还缺来了merge,例如合并空region。
store: 基本信息,容量,剩余空间,读写流量等
region: 范围,副本分布,副本状态,数据量,读写流量等
- 相关调度说明
- balance-leader-scheduler: 保持不同节点的leader均衡
- balance-region-scheduler: 保持不同节点的Peer均衡
- hot-region-scheduler: 保持不同节点的读写热点Region均衡
- evict-leader-{store-id}: 驱逐某个节点的所有leader
调度limit参数
- 调度当中的生产者相关参数
参数 | 默认值 | 说明 |
---|---|---|
region-schedule-limit | 2048 | 同时进行Region调度的任务个数 |
leader-schedule-limit | 4 | 同时进行leader调度的任务个数 |
replica-schedule-limit | 64 | 同时进行replica调度的任务个数 |
merge-schedule-limit | 8 | 同时进行region merge调度的任务,设置为0则是关闭这个调度 |
hot-region-schedule-limt | 4 | 控制同时进行的hot Region任务。 |
patrol-region-interval | 100ms | 控制region的间隔,默认100ms,通常不需要调整 |
tolerant-size-ratio | 0 | 控制balance region缓冲区大小,默认是0,表示自动调整,不需要修改 |
region_weight leader_weight | 1 | PD计算region和leader分数之后,会除以weight得到最终的region和leader分值,weight默认为1,不需要修改 |
- 调度当中的消费者相关参数-消费限速(store limit)
- 定义: 限制单个store的消费速度
- 方式: pd-ctl -u ip:port store limit <id> <value>
- 区别: store limit限制的主要是operator的消费速度,而其他的limit主要是限制operator的产生速度
存储空间阈值参数
pd 会为每个TiKV打分(例如leader多的分高),如果分多,则可能将leader允给其他的节点。 但有个前提,如果分少的节点基本没空间了,则分多的节点给它分数就不太合适了。此时通过high-space-ratio: 60% 这个参数控制当节点存储的空间小于这个值的时候,则不考虑这个空间因素了。或者low-space-ratio:80%,当节点存储空间大于这个值的时候,就会优先考虑空间因素了。
常见问题的处理
扩容后balance region 调度速度慢
Grafana PD -> Operator -> Schedule Operator Create
Grafana PD -> Operator -> Operator Step Duration
store节点故障后补副本的速度慢
Region merge速度慢
pd-ctl
- 查看并修改调度参数
config show -- 显示当前调度相关参数
config set <key> <value> -- 修改相关参数
store limit <store_id> <value> --限制单个store的调度速度
- 1
- 2
- 3
- 手动添加Operator
operator show [admin|leader|region] --展示当前全局或某类的调度任务
operator add --人工添加一些调度任务实现期望目标,例如
operator add add-peer <region_id> <store_id>
operator add remove-peer <region_id> <store_id>
operator add transfer-leader <region_id> <store_id>
- 1
- 2
- 3
- 4
- 5
- 详细使用方法
https://docs.pingcap.com/zh/tidb/v6.5/pd-control
- 1