关于一个tikv节点region数量超5万影响性能问题请教

官方文档说,一个tikv节点region数量不建议超过5万个,我一个测试集群,300G数据,region数量2万,生产3T数据量,一个tikv节点region数量近20万个,会影响性能吗?
8827c74373078d20b26dbd93389e48e

建议加大 REGION大小或者增加TIKV节点数量

1 个赞

你们生产5T的数据量,一般是多少tikv节点?

1 个赞

参考这里调优下吧,https://docs.pingcap.com/zh/tidb/v6.5/massive-regions-best-practices#海量-region-集群调优最佳实践
主要是pd需要记录所有的region信息,并且不停的刷,region太多了,容易导致pd无法及时获取region信息

2 个赞

300G就有2.2W个region?表很多吗? :thinking:

看了一下运维的一套库,单kv300多g,对应单kv40k个region。正常吗、表没有100个

500张表左右

你这个集群快接近5万的region数量了

与我这个比较,数据少的很

你们region怎么这么多?按单个region 96MB来算,应该低于5k吧 :joy:(除非有很多独立的表)

1 个赞

300G 的数据,5w个region,故意造的吗?
我们的生产集群一半1.5t左右才有四五万个region。
region多了来回心跳,raft消息之类的,浪费不少资源。

2 个赞

印象中v4.0以后的集群默认开静默region 的功能,region 之间发送心跳的频率会降低,所以只要不是整个集群所有数据都比较频繁读写,那么维护几万个心跳的成本总体应该还是比较低的。

如果不放心,还可以通过调大region的大小,默认是96MB。调大后,在集群规模基本不变的情况下,region 数会下降。

调到256m的region大小,够用的

首先查看一下空region多不多,其次查看pd leader的cpu使用情况,不高就影响不大

1 个赞

这个差不多,我看了我们环境也是那么多

官方给出的时建议值,多了性能肯定有影响

1 个赞

官方建议不如你的实际压力和实际情况

1 个赞

也得看配置,服务器配置高可以提高上限的

1 个赞

主要看PD节点的性能压力如何?
也可以看看region多的原因是否是空region多?
在 5.0 之前,TiDB 默认关闭跨表合并 Region 的功能。从 5.0 起,TiDB 默认开启跨表合并 Region 功能,减少空 Region 的数量,降低系统的网络、内存、CPU 的开销。你可以查看schedule.enable-cross-table-merge 配置项

1 个赞

越多性能越好,具体根据配置测试一把