KV节点的磁盘大于2T会怎样?

为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:

  • 系统版本 & kernel 版本

CentOS7.4,3.10.0-693.2.2.el7.x86_64

  • TiDB 版本

3.0.2

  • 磁盘型号

阿里云的SSD

  • 集群节点分布

TIDB:2个节点

PD:3个节点

TiKV:6个节点

  • 数据量 & region 数量 & 副本数

  • 问题描述(我做了什么)

如题所述,我的生产环境下的TIDB集群有6个TiKV节点。每个TiKV节点的磁盘都是2T的SSD,6个就12T。目前我们的磁盘已经用了70%,到了考虑要增加磁盘的时候了。

但是我们的情况是TIDB集群更多是一个OLAP的场景,一般情况下集群的IO压力并不是很大。考虑到增加服务器的成本比较大,所以我们接下来打算增加磁盘空间大小,增加到每个TiKV 4TB。

按照官方的推荐,建议TiKV的磁盘大小不超过2TB。如果超过2TB那会怎样呢,会有什么性能问题吗?

  • TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。
  • 关键词】 TiKV,磁盘大小

单实例磁盘容量不宜过大的原因有如下两点:(欢迎继续补充)

1:单个 TiKV 磁盘过大,会导致实例挂了之后,需要补大量的副本,会给其他节点带来很大的磁盘压力。

2:单个磁盘过大,Region的个数也会很多,region group 之间的心跳会导致 raft store cpu 很高。

目前我们的raft cpu的值大概在130%左右,这时候是不建议增大磁盘了是么?

还有一个问题,如果我增加一个TiKV的实例的磁盘大小是4T,这时候这个新实例的region数量会和其他实例的基本一致么?如果我想要这个实例拥有更多的region,是不是可以通过调整这个实例的weight来实现。

1、官方不建议单个 tikv 的磁盘过大,原因可参考上面的回答

2、如果是 3.0 版本 raftstore 可以进行调整,详情见 tikv 的参数 store-pool-size,该参数默认为 2。参数为 2 ,在监控中表示最高的利用率是 200%。可以结合监控的情况判断是否需要调整 raftstore 的参数

3、原则上建议每台 tikv 的磁盘容量一致,如果某台 tikv 本身的磁盘容量较大,想提高该服务器的磁盘利用率,可以通过调整这个实例的 region-weight 和 leader-weight 。但是不建议一台 tikv 存储过多的 region,比如:如果该服务器异常宕机,那么受影响 region 会更多等