tikv节点的region不合并吗?

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.1.1.
【遇到的问题:问题现象及影响】
之前有3个大表,现在业务按照时间删除,经过一个月左右的删除,表数据行数从几十亿行删除到基本为0,但是每个tikv节点上的region还是很高,这些region不合并吗?请问该如何让这些region合并?数据量这么点,对应的region可是太多了呀,每个tikv有23w的region,store size7.5T,这么点数据量不合理
数据删除特点:
3个大表保留1个月的数据,每天凌晨删除30天的数据,持续了1年多了。region的数量一直上涨。
最近业务停止写入了,但是数据一直在删除,3个大表删除到接近0行了,region数量也没有下降,反而这几个表的读取极慢。

另外如何查看是否存在空region?表的数据量都是空的话,是不是应该有很多空region呀?

看看Grafana里的Region health

就是你查的这个图,看这个图应该是没有空region啊

1 个赞

那每个tikv节点又有20多万的region,这不符合常理吧? region不自动合并吗?

leader是80,三副本,region就是80x3=240,从这方面看有20多万region是正常的。

region合并调优可以看看这里
https://docs.pingcap.com/zh/tidb/stable/massive-regions-best-practices#方法五开启-region-merge

从region量计算上没有问题,但是现在这个集群里的这点数据,有20多万的region不符合常理

这个是有设置的

看下 PD 监控的这个面板 PD =》Scheduler =》Region merge checker

表的数量比较多吗,都是小表吗? enable-cross-table-merge 参数设置的是啥

我看到了,是开着的

1、集群只有6个表,数据量情况见下图

2、enable-cross-table-merge=true

看看 tikv 的 TiKV =》Server =》Approximate Region size 和 Approximate Region size Histogram

老版本可能存在bug导致不能合并。

要么把enable-compaction-filter改成false。

https://docs.pingcap.com/zh/tidb/stable/garbage-collection-configuration#gc-in-compaction-filter-机制

要么尝试一下手动compaction。
https://docs.pingcap.com/zh/tidb/stable/tikv-control#手动-compact-整个-tikv-集群的数据
手动compaction需要业务低峰期。

  • 使用监控工具(如 Prometheus + Grafana)观察 TiKV 的 Region 状态、负载情况等,查看是否有瓶颈。
  • 根据监控结果,适当调整 TiKV 的资源分配,如 CPU、内存等。
1 个赞

1、20w个region是包含了副本的,如果是3副本,实际就只有7w个region。
2、虽然只有6个表,但是第二个表有1.4亿条数据,360亿字节的数据和91亿字节的索引(不一定准确,因为按这个数据和索引长度换算下来只有45G大小,2.5T相差比较大)。
结合数据量,感觉7w多region也是可以接受的。毕竟除了数据还有索引。

主要是3个大表经过这1个月的删除,各清理了十几亿行的数据,现在表行数为0了,region数量并没有显著下降,而且这3个表的查询极慢,肯定是有问题的
QQ_1728610314441

升级到新版本吧