PCTA-2.5.3 PD Control 的典型使用场景-2班-王燕辉

课程名称:课程版本(101/201/301)+ 课程名称

学习时长:1H

课程收获:

pd control 工具的使用,以及如何通过 pd control 工具获取集群中相关信息和使用 pd control 对 pd 调度进行一些控制,通过本课程的学习,理解 pd 中关于调度策略的相关概念,并能通过 pd-ctl 工具对调度策略进行控制。

课程内容:

  1. PD & PD Control
    Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个: 一是存储集群的原信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。
    PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。

PD Control 是 PD 的命令行工具,用于获取集群状态信息和调整集群。
image

2.查看/修改 PD config
image
用于显示 PD 成员信息,删除指定成员,设置成员的 leader 优先级。

用于显示 store 信息或者删除指定 store。使用 jq 格式化输出请参考 jq-格式化-json-输出示例
用于显示 Region 信息。使用 jq 格式化输出请参考 jq-格式化-json-输出示例
region store <store_id> 用于查询某个 store 上面所有的 Region。
label [store <name> <value>] 用于显示集群标签信息。
image

Scheduler config & modify

image
控制调度策略
image

Scheduler operator
operator [check | show | add | remove]
用于显示和控制调度操作。
image
image

>> operator show                                        // 显示所有的 operators
>> operator show admin                                  // 显示所有的 admin operators
>> operator show leader                                 // 显示所有的 leader operators
>> operator show region                                 // 显示所有的 Region operators
>> operator add add-peer 1 2                            // 在 store 2 上新增 Region 1 的一个副本
>> operator add add-learner 1 2                         // 在 store 2 上新增 Region 1 的一个 learner 副本
>> operator add remove-peer 1 2                         // 移除 store 2 上的 Region 1 的一个副本
>> operator add transfer-leader 1 2                     // 把 Region 1 的 leader 调度到 store 2
>> operator add transfer-region 1 2 3 4                 // 把 Region 1 调度到 store 2,3,4
>> operator add transfer-peer 1 2 3                     // 把 Region 1 在 store 2 上的副本调度到 store 3
>> operator add merge-region 1 2                        // 将 Region 1 与 Region 2 合并
>> operator add split-region 1 --policy=approximate     // 将 Region 1 对半拆分成两个 Region,基于粗略估计值
>> operator add split-region 1 --policy=scan            // 将 Region 1 对半拆分成两个 Region,基于精确扫描值
>> operator remove 1                                    // 把 Region 1 的调度操作删掉
>> operator check 1                                     // 查看 Region 1 相关 operator 的状态

Store Limit 是 PD 在 3.0 版本引入的特性,旨在能够更加细粒度地控制调度的速度,针对不同调度场景进行调优。
Store Limit 是通过在内存中维护了一个 store ID 到令牌桶的映射,来实现 store 级别的限速。这里不同的操作对应不同的令牌桶,目前仅支持限制添加 learner/peer 和删除 peer 两种操作的速度,即对应于每个 store 存在两种类型的令牌桶。

学习过程中参考的其他资料

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料