3.0.1集群,目前的regions数量有24万多如何在不销毁集群的情况下,降低regions的数量?

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

  • 系统版本 & kernel 版本:CentOS-7.2.1511 && 3.10.0-327.36.3.el7.x86_64

  • TiDB 版本:3.0.1(tidb,pd,tikv)

  • 磁盘型号:普通机械盘

  • 集群节点分布: image

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

  • 集群 QPS、.999-Duration、读写比例:

  • 问题描述(我做了什么): 我们目前数据库情况是这样的,我们有大量的库和表,500+个schemas,每个schema有200+张表。使用3.0.1没有做集群 regions 数量过多,导致上报心跳过多。先调整几个 TiKV 的参数

raft-base-tick-interval: “2s”

raft-log-gc-tick-interval: “60s”

还有两个参数也改下:

TiDB 的参数:split-table 设置为 false;

TiKV 的参数:split-region-on-table 设置为 false

作用是:关闭为每个 table 建立单独的 Region,table 数量很多

这几个参数未进行调整,使用的是3.0.1集群默认的参数配置。目前,把数据导入后,有24万个regions,但是,我们并没有太多的数据。好多schema下只是存放了表结构和部分数据。

1、3.0.1集群,目前的regions数量有24万多,没有进行之前tikv和tidb的参数调整,如果我调整后,以前的region数据会不会进行合并,regions数量会不会减少? 只对后续导入数据的regions数量会减少? 2.在目前的基础上,调整这几个参数后,我再删除上百个schema,现有的24万regions会不会降下来?

谢谢!

1赞

上面调整的参数跟 region 的合并没有关系,看截图 11.3 G 的数据已经有 24 万 的 region, 可以调整下 region merge 的参数,小 region 合并之后,region 总数会下降。可以调整下这三个参数:merge-schedule-limit 、 max-merge-region-size 、max-merge-region-keys ,具体用法官网搜索下。

1赞

1.使用默认配置的监控regions:

2.经过调整参数:

修改tikv的配置参数: raft-base-tick-interval: “2s” raft-log-gc-tick-interval: “60s”

还有两个参数也改下: TiDB 的参数:split-table 设置为 false; TiKV 的参数:split-region-on-table 设置为 false

监控图表:

2张图表的对比还是很明显的,第一张图是全量的数据,有25万regions,第二张图片是全量的一半数据,目前,产生了3.2w个regions,预计全部导入完成,大概在8万左右。

后续,再调整一下这三个参数:merge-schedule-limit 、 max-merge-region-size 、max-merge-region-keys ,观察一下,regions的合并情况。谢谢!