使用 scale-in 缩容 TiKV 时可以同时缩容好几个 TiKV 吗

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】

现在有一个集群版本是 5.1.x 版本,有几十个 TiKV ,但是业务数据比较少,需要缩容 10 个 TiKV
想问下可以这样执行缩容吗?
tiup cluster scale-in xxxx_cluster -N 1.1.1.1:20160,2.2.2.2:20160,3.3.3.3:20160…
还是建议像下面这样一个一个的缩容
tiup cluster scale-in xxxx_cluster -N 1.1.1.1:20160
tiup cluster scale-in xxxx_cluster -N 2.2.2.2:20160
tiup cluster scale-in xxxx_cluster -N 3.3.3.3:20160

我理解,即使 tiup 缩容时指定多个 tikv ,tiup 内部也是一个tikv 一个tikv的缩容,否则集群会出故障
但是不知道是否有什么意想不到的问题导致这样同时指定多个tikv缩容时出什么问题?

增加一个问题,是否可以批量扩容,比如一个集群可扩容6个tikv?

感谢

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

1 个赞

可以同时缩容多个tikv的,但不推荐,建议依次缩容

3 个赞

正常来说,还是依次缩容比较保险,能人工判断缩容是否正常。批量风险增加了

1 个赞

可以但不建议, 而且并发缩容并不会比依次缩容缩容快, 因为调度会更加频繁, 可能还会影响tidb的响应时间

1 个赞

批量缩容风险很大,首先IO就受不了

1 个赞

不推荐这么搞,风险太大

生产环境还是谨慎点好,测试环境随便搞

请问,可以批量扩容吗?比如一个集群一次性扩容10个tikv?感谢

1 个赞

这个没有问题的。

因为缩容需要补一些副本数据,需要一些写io。而且这些写io的压力会给到剩下没有被缩容的机器。

但扩容添加的副本一开始是作为learner角色加入原本的raft组的,新的写入io不会给到原来的机器。等learner角色数据补齐,就会转为leader,并删掉多余的副本。完成leader的切换。

1 个赞

也是支持的,可以一次扩容多个

可以,但不建议这么做

可以的

没问题

批量扩容风险有点大,还是逐步扩容并观察是否异常好点

建议还是一个一个来吧

云tidb的话,缩容tikv都是自动一个一个缩的,缩容一个store的数据过程中,store里面的leader和region会均衡到其他tikv上面去,等到store的状态变为tombstone之后,再自动缩容另一个tikv

1 个赞

最好还是一个个来

不建议一次性缩容多个,容易导致多个region一起调度,影响性能

可以做,但是性能或影响到。我也是准备从30个kv缩容到20个。打算1个1个缩容。如果一次性10个缩容。怕影响业务。而且万一影响了。中断缩容也不知道会不会出问题