负载均衡调度

在 TiDB 集群中,发现某些 TiKV 节点的磁盘使用率明显高于其他节点。如何使用 PD 调度策略将数据均衡到其他节点?

tiup ctl pd -u http://:2379 config set balance-space-factor 16
执行这个试试, PD 优先把 Region 从满的节点空的节点

考虑标签机制完成指定节点的region倾斜配置比较好啊

其实不用手动调度,默认情况下pd会根据元数据信息自动调度。考虑使用率时还要考虑各节点服务器的存储配置是否一致

如果分布不均衡的话要怎么手动调度呢

先看 PD 的 store 状态:

pd-ctl -u http://pd:2379 store

重点看:

capacity
available
region_count
leader_count

如果某个 TiKV:

region_count 很高
available 很低

PD 才会触发 balance-region-scheduler

1 个赞

确认 PD 调度器是否开启

查看当前调度器:

pd-ctl -u http://pd:2379 scheduler show

正常应该有:

balance-region-scheduler
balance-leader-scheduler
balance-hot-region-scheduler

如果缺少,可以添加:

pd-ctl scheduler add balance-region-scheduler

说明:

scheduler 作用
balance-region-scheduler 均衡数据
balance-leader-scheduler 均衡 leader
balance-hot-region-scheduler 均衡热点
1 个赞

有没有手动调节权重的方法呢

用标签实现负载倾斜吧

好的,标签可以设置权重吧

https://docs.pingcap.com/zh/tidb/stable/pd-control/#设置-store-weight

可以将 region 权重调大。
不过默认 region 调度是考虑磁盘的空间和使用率的。

你先提供下 lables 信息:

 tiup cluster display cluster-name --labels

好的,推荐还是用label来调度是吗

确实,有些公司没办法保证tikv每个节点机器性能一致的情况下,有手动干预的策略还是会好一点。现实中的环境总是没有那么理想化的。

tidb 默认就是按照 label 自动调度的。
你先提供下上面命令信息,是不是安装配置有问题。

最好能保证

好的,我现在没有具体场景,只是想确认一下理论知识

理论上肯定是可以的,支持设置权重,设置支持将某个节点上的主副本全部迁走。

默认情况下是使用label进行调度的吗,label的话就是tidb自动根据负载和数据量等指标来调度的?

在 TiDB 集群中,若发现某些 TiKV 节点磁盘使用率明显高于其他节点,可通过 PD(Placement Driver)的调度策略主动触发数据均衡,将热点或高负载 Region 迁移至资源充裕的节点。

关于调度可以看一下这里