官方文档说,一个tikv节点region数量不建议超过5万个,我一个测试集群,300G数据,region数量2万,生产3T数据量,一个tikv节点region数量近20万个,会影响性能吗?
建议加大 REGION大小或者增加TIKV节点数量
你们生产5T的数据量,一般是多少tikv节点?
参考这里调优下吧,https://docs.pingcap.com/zh/tidb/v6.5/massive-regions-best-practices#海量-region-集群调优最佳实践
主要是pd需要记录所有的region信息,并且不停的刷,region太多了,容易导致pd无法及时获取region信息
300G就有2.2W个region?表很多吗?
看了一下运维的一套库,单kv300多g,对应单kv40k个region。正常吗、表没有100个
500张表左右
你这个集群快接近5万的region数量了
你们region怎么这么多?按单个region 96MB来算,应该低于5k吧 (除非有很多独立的表)
300G 的数据,5w个region,故意造的吗?
我们的生产集群一半1.5t左右才有四五万个region。
region多了来回心跳,raft消息之类的,浪费不少资源。
印象中v4.0以后的集群默认开静默region 的功能,region 之间发送心跳的频率会降低,所以只要不是整个集群所有数据都比较频繁读写,那么维护几万个心跳的成本总体应该还是比较低的。
如果不放心,还可以通过调大region的大小,默认是96MB。调大后,在集群规模基本不变的情况下,region 数会下降。
调到256m的region大小,够用的
首先查看一下空region多不多,其次查看pd leader的cpu使用情况,不高就影响不大
这个差不多,我看了我们环境也是那么多
官方给出的时建议值,多了性能肯定有影响
官方建议不如你的实际压力和实际情况
也得看配置,服务器配置高可以提高上限的
主要看PD节点的性能压力如何?
也可以看看region多的原因是否是空region多?
在 5.0 之前,TiDB 默认关闭跨表合并 Region 的功能。从 5.0 起,TiDB 默认开启跨表合并 Region 功能,减少空 Region 的数量,降低系统的网络、内存、CPU 的开销。你可以查看schedule.enable-cross-table-merge
配置项
越多性能越好,具体根据配置测试一把