为什么Region的这个指标会这么大?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】V8.5.1
请教一下各位大佬,为什么grafana上的指标region会占用这么大,tikv的存储占用才170左右,region指标就700多G,我每个节点的存储才500。想请问一下是如何计算的指标?


好像是有点问题的。

这里统计的是预估的未压缩的大小 APPROXIMATE_SIZE。所以要大于实际磁盘容量。

1 个赞

有肯能显示异常吧,region的大小比leader大但是这个大的有点多,而且region的数量只有3k多。不应该这么大,有没有调整region大小呢
楼上说的不错,有可能是计算的未压缩的大小。大概就是3倍左右

全都是默认配置,没有改任何配置

而且都不止3倍,我看磁盘占用和dashboard的指标曲线是差不多的

741*1024/3300 约等于 229 MB。另外提一下 tidb 8.5 版本默认 region 大小调整到了 256MB。


总的看下来是符合预期的。

3 个赞

楼上说的不错,指标上应该是计算出未压缩的大小。

1 个赞

计算逻辑的话大概就是每个 region 的 APPROXIMATE_SIZE 相加。


代码主要是以下位置pd/pkg/core/region.go at 5036cc277fc8c0e7fa1219265ae407de80b950b7 · tikv/pd · GitHub
https://github.com/tikv/pd/blob/5036cc277fc8c0e7fa1219265ae407de80b950b7/pkg/core/region_tree.go#L178-L201

2 个赞

SELECT b.store_id,COUNT(*) region_count,SUM(total_size) region_size FROM
(SELECT
region_id,
SUM(Approximate_Size)/1024 total_size
FROM
information_schema.TIKV_REGION_STATUS
GROUP BY region_id) a JOIN (SELECT DISTINCT region_id,store_id FROM INFORMATION_SCHEMA.TIKV_REGION_PEERS ) b
ON a.region_id=b.region_id
GROUP BY b.store_id
ORDER BY 1;
这个sql看下呢?这个大小才是未压缩的大小吧

:joy:从运维角度出发,这种图表应该显示压缩后的吧。压缩前的有什么意义?

就是有压缩了,具体也看压缩比

有另外的监控显示压缩后的大小。按我的理解一是为了计算压缩比,二是为了有直观感受存储了多少业务数据,毕竟其他传统数据库基本默认都是没有压缩的。
从运维角度来说,就不应该看这个面板。

:thinking:看副本均衡,应该是看这个吧?还有其他视图么?

最新版调整了默认region大小, Tune Region Performance | TiDB Docs