炼气期DBA
(Ti D Ber Ic01xw Vm)
1
CREATE TABLE t2 (
id int(11) DEFAULT NULL
) shard_row_id_bits=4 pre_split_regions=3;
CREATE TABLE t2 (
id int(11) DEFAULT NULL
) shard_row_id_bits=4 pre_split_regions=4;
在建表时间使用pre_split_regions参数预分配regions,发现LEADER_STORE_ID节点有时候都在同一个节点,有时候多数都分布在一个节点,就不会适当的均匀分布。
1 个赞
wbslxw
(Ti D Ber Cl S0j Eng)
2
调高 PD 的leader-schedule-limit,加速自动均衡;
用 pd-ctl 手动批量迁移 Region Leader 到不同节点;
规范参数:pre_split_regions数值和shard_row_id_bits保持一致。
1 个赞
克里克里克
(Ti D Ber H052ej9m)
3
应该还是主要通过scheduler内部调度控制的,创建的时候不是平均分布。毕竟每个KV的负载不同,完全平均分布有可能更加重负载重的节点的性能了。
即使内部调度也不会对该部分region完全打散,优先有读写的leader region迁移到别的节点了。
1 个赞
kang
4
这个问题可以看看官方文档的 FAQ,TiDB 在这块有比较详细的说明。方便的话贴一下具体的报错日志,方便大家帮忙定位。
1 个赞
TiDB_001
(Ti D Ber No L Znn Vd)
5
建表预分区后 Leader 分布不均,可调大 PD 领导者调度限制加速均衡,也能手动迁移 Leader,同时让 pre_split_regions 与 shard_row_id_bits 参数匹配。
1 个赞
pre_split_regions 仅预先切割出对应数量 Region 分片,不主动分配 Leader 节点,新建 Region 默认 Leader 会落在同一个 TiKV 节点。