关于TIKV_REGION_STATUS、TIKV_REGION_PEERS及监控中tidb-acloud-overview的当前数据量疑问

疑问一:
tikv_region_peers与tikv_region_status中region数量是什么关系?
文档说tikv_region_status是tikv region的基本信息,我理解是集群总共有这么多region?
tikv_region_peers表中的region数量又代表什么呢?
image
疑问二:
查看监控当前数据量为1T,
image
我计算tikv_region_status中region大小,与监控中当前数据量大小对比,相差太大
image
要确定集群共有多少region?如何查询?

这两个表的作用和含义。

  • tikv_region_status 表:该表提供了 TiKV 集群中每个 Region 的基本信息,包括 Region ID、起始键、结束键、所属表的 ID、数据库名称、表名称等[1]。通过查询该表,您可以获取到 TiKV 集群中所有 Region 的详细信息。

  • tikv_region_peers 表:该表提供了 TiKV 集群中每个 Region 的 Peer(副本)信息,包括 Peer ID、Store ID、是否为 Learner(学习者)或 Leader(领导者)等[2]。通过查询该表,您可以了解每个 Region 的 Peer 分布情况。

这两个表中的 Region 数量代表的是不同的含义:

  • tikv_region_status 表中的 Region 数量代表的是整个 TiKV 集群中的 Region 总数。每个 Region 对应着 TiKV 集群中的一部分数据。

  • tikv_region_peers 表中的 Region 数量代表的是每个 TiKV 节点上的 Region 数量。每个 TiKV 节点负责存储和处理一部分 Region 的数据,并维护这些 Region 的 Peer 信息。

因此,tikv_region_status 表中的 Region 数量是整个 TiKV 集群的总体情况,而 tikv_region_peers 表中的 Region 数量则是每个 TiKV 节点上的局部情况。

[2]: TiDB 官方文档 - INFORMATION_SCHEMA.TIKV_REGION_PEERS:https://docs.pingcap.com/zh/tidb/stable/information-schema-tikv-region-peers
[1]: TiDB 官方文档 - INFORMATION_SCHEMA.TIKV_REGION_STATUS:https://docs.pingcap.com/zh/tidb/stable/information-schema-tikv-region-status

  • tikv_region_status 表中的 Region 数量代表的是整个 TiKV 集群中的 Region 总数。每个 Region 对应着 TiKV 集群中的一部分数据。
  • tikv_region_peers 表中的 Region 数量代表的是每个 TiKV 节点上的 Region 数量。每个 TiKV 节点负责存储和处理一部分 Region 的数据,并维护这些 Region 的 Peer 信息。
    请问,为什么他们不是3倍的关系?

说明,这个库是静态数据,没任何数据修改,我自己玩的一个测试集群

问题一:
1、tikv_region_peers记录peer信息,正常来说region设置3副本,region状态都健康,没有tiflash情况下,这张表行数就是region数的3倍。
2、tikv_region_status记录region信息,但是由于记录方式并不是一个region一行,所以它的行数并不等于region数,count(distinct region_id)才等于region数。
问题二:
1、current storage size监控来源于PD监控,是tikv上报节点状态上报上来的,它应该是这个节点物理上数据量大小。
2、你这种算大小的方式不对,首先region数量不会,上文提到了,第二region并不是都是96M的。
3、集群有多少region可以通过监控直接看到,在PD面板=>number of regions。

计算出来也相差很大,并不是每个region都是96M,我理解,但结果相差太大

大小是看APPROXIMATE_SIZE字段,而不是直接96M计算。

tikv数据是压缩的 APPROXIMATE_SIZE是压缩的,3*APPROXIMATE_SIZE/压缩比就是所有tikv磁盘占用,压缩比参考这个

https://docs.pingcap.com/zh/tidb/stable/manage-cluster-faq#如何预估-tidb-中一张表的大小

差很大就对了,你计算公式不对啊

第一个是副本数,第二个是region数,概念不一样

从图片上看出你是三副本,如果你知道是怎么算出来的,你就知道他们的区别了

这个查表大小也不准确呀

SELECT
db_name,
table_name,
ROUND(SUM(total_size / cnt), 2)/1024 Approximate_Size,
ROUND(SUM(total_size / cnt / (SELECT
ROUND(AVG(value), 2)
FROM
METRICS_SCHEMA.store_size_amplification
WHERE
value > 0)),
2)/1024 Disk_Size
FROM
(SELECT
db_name,
table_name,
region_id,
SUM(Approximate_Size) total_size,
COUNT(*) cnt
FROM
information_schema.TIKV_REGION_STATUS
WHERE
db_name = ‘db_name’
– AND table_name IN (‘t_name’)
GROUP BY db_name , table_name , region_id) tabinfo
GROUP BY db_name , table_name;

这个查完,磁盘总空间大小对不上

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。