[转帖]058、集群优化之PD

集群,优化,pd · 浏览次数 : 0

小编点评

**PD调度基本概念** PD调度是一种在 TiKV 中自动执行的分布式数据复制和分布算法。它可以确保 TiKV 的一致性和性能,并减少人工维护的成本。 **调度流程** 1. **初始化:** PD 在 TiKV 中启动时自动配置。 2. **平衡:** PD 使用 balance-region-scheduler 或 balance-leader-scheduler 算法来保持不同节点的 leader 平衡。 3. **合并:** 在 merge-schedule-limit 参数中设置合并任务的数量。 4. **删除:** 在 evict-leader-{store-id} 中删除一个 leader。 5. **复制:** PD 使用 hot-region-scheduler 或 hot-region-scheduler 算法来维护不同节点的读写热点。 6. **策略:** 在patrol-region-interval 中设置扫描的间隔时间。 7. **消费:** PD 使用 consumer-related 参数来限制单个 store 的消费速度。 8. **存储空间阈值:** PD 考虑存储空间因素,当节点存储空间小于存储空间阈值时,不会考虑这个空间因素。 **存储空间阈值** 存储空间阈值参数用于控制当节点存储空间小于该值时,是否考虑存储空间因素。默认值是 0,表示自动调整。 **常见问题的处理** * **扩容:** 通过设置 store limit 参数限制单个 store 的调度速度,可以提高性能。 * **复制:** 通过设置 merge-schedule-limit 参数控制合并任务的数量,可以优化性能。 * **删除:** 通过设置 evict-leader-{store-id} 中的 leader 的数量,可以减少资源消耗。

正文

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-limit2048同时进行Region调度的任务个数
leader-schedule-limit4同时进行leader调度的任务个数
replica-schedule-limit64同时进行replica调度的任务个数
merge-schedule-limit8同时进行region merge调度的任务,设置为0则是关闭这个调度
hot-region-schedule-limt4控制同时进行的hot Region任务。
patrol-region-interval100ms控制region的间隔,默认100ms,通常不需要调整
tolerant-size-ratio0控制balance region缓冲区大小,默认是0,表示自动调整,不需要修改
region_weight
leader_weight
1PD计算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
文章知识点与官方知识档案匹配,可进一步学习相关知识

与[转帖]058、集群优化之PD相似的内容:

[转帖]058、集群优化之PD

PD调度基本概念 调度流程 调度中还有这还缺来了merge,例如合并空region。 store: 基本信息,容量,剩余空间,读写流量等 region: 范围,副本分布,副本状态,数据量,读写流量等 相关调度说明 balance-leader-scheduler: 保持不同节点的leader均衡ba

[转帖]水晶头超5类和6类的区别是什么?六类水晶头和超五类水晶头通用吗?

一图胜千言,5类水晶头和6类水晶头从外观上看并没有很大的区别,但实际上里面还是有很大的不同。 5类水晶头的8根线芯是一字排开的,而6类水晶头的8根线芯是呈现上、下交错的形式排列。 原因其实特别简单,标准的超五类网线线径是0.51mm,六类网线的线径是0.57mm,超六类网线的线径是0.58mm。 那

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /