tikv节点下线速度很慢,有没有方法可以快速下线

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.12
  • 【问题描述】:
    原来tikv节点有3个,副本数是3,后来添加了两个节点,但是添加后发现数据平衡过程中对业务性能影响很大,然后就决定趁新的两个节点数据还不多,下线这两个节点。但是用 store delete下线两个节点后,发现region减少的速度非常慢。请问有什么好的方法可以加速下线过程吗?

麻烦看一下这篇官方文档, 对上线和下线速度慢做了详细的介绍。另外需要学习一下 pd-ctl 来调整对应的调度参数。

节点下线速度慢

这个场景需要从 Operator 相关的 Metrics 入手,分析 Operator 的生成执行情况。

如果调度在正常生成,只是速度很慢,可能的原因有:

调度速度受限于 limit 配置。可以适当调大 replica-schedule-limit,max-pending-peer-count 以及 max-snapshot-count 限制也可以放宽。
系统中同时运行有其他的调度任务产生竞争。处理方法参考Leader/Region 分布不均衡。
下线单个节点时,由于待操作的 Region 有很大一部分(3 副本配置下约 1/3)的 Leader 都集中在下线的节点上,下线速度会受限于这个单点生成 Snapshot 的速度。你可以通过手动给该节点添加一个 evict-leader-scheduler 调度器迁走 Leader 来加速。
如果没有对应的 Operator 调度生成,可能的原因有:

下线调度被关闭,或者 replica-schedule-limit 被设为 “0”。
找不到节点来转移 Region。例如相同 Label 的替代节点可用容量都不足 20%,PD 为了避免爆盘的风险会停止调度。这种情况需要添加更多节点,或者删除一些数据释放空间。
节点上线速度慢
目前 PD 没有对节点上线特殊处理。节点上线实际上是依靠 balance region 机制来调度的,所以参考Leader/Region 分布不均衡 中的排查步骤即可。

https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices#节点下线速度慢