TiDB 集群扩容新增TiKV节点后,热点Region迁移缓慢,负载无法均衡

一个好的问题描述有利于社区小伙伴更快帮你定位到问题,高效解决你的问题

环境: 生产,v8.0.0
问题描述: 业务高并发写入,原有TiKV节点负载偏高,扩容新增TiKV节点后,等待许久负载依旧集中在老节点,热点Region迁移进度很慢。
日志片段:
[2026/08/24 09:15:33.121 +08:00] INFO pd: schedule operator slow, region_id=7896542, operator=transfer-leader

能否给出一定的运维时间,专门解决这个问题呢?

比如,停止所有服务的读写,将资源全部分配给迁移?以加速 Region 的扩容和均衡

但是,热点问题不会因为新节点的加入就可以解决的,这个一定会带来写偏斜和读偏斜,建议先解决热点问题,再来扩容。

扩容后磁盘数据会自动搬迁,但**高写入热点 Region 受 PD 保护策略,不会自动迁移 Leader;先 split 拆分热点 Region,适度放开 PD 调度限速辅助搬迁,根本要靠业务层打散主键消除写热点。

是的,可以先尝试下

写热点的缓解方式并不是扩容tikv节点,而是表主键优化,然后预拆region尽量将写分配到多个tikv上

扩容后热点不会自动均摊完。PD 日志里 transfer-leader 慢,说明调度在排队或被限流。先看 hotspot scheduler、store limit、region count 是否打满老节点。可临时提高调度限制、对热点 region 手动 split/transfer;长期要打散热键,避免写入仍集中在旧 key 范围。

balance-hot-region-scheduler和balance-leader-scheduler 是两个调度。可以看看Operator当前主要集中在哪个操作上以及TiKV的负载。
另,如果是高写入负载的环境下,也不建议快速的transfer leader吧,否则region岂不是得频繁的Backoff。

默认参数很慢,需要你改参数增加速度

看你的日志是transfer-leader调度慢,热点Region迁移慢大概率是调度参数没放开。先检查几个点:

  1. 确认新节点没被标记为不可调度,执行 pd-ctl store 看新store的state是否正常
  2. 调整调度限速,pd-ctl config set leader-schedule-limit 4region-schedule-limit 64hot-region-schedule-limit 4
  3. 热点调度默认按流量统计,如果写入集中在个别region,试试调低 hot-region-cache-hits-threshold(默认10000,调到1000左右)

另外确认新节点磁盘和网络没瓶颈,tiup cluster display 看下监控。如果还慢,可以手动指定迁移:
pd-ctl operator add transfer-leader 7896542 <新节点store_id>
然后观察dashboard的Key Visualizer确认热点分布。注意生产环境别一次调太大,逐步加。

学习记下了,大佬说的更合理