TiKV store size 指标变化的原因

【 TiDB 使用环境】测试
【 TiDB 版本】6.5.3 5.1.4
5.1.4的 TiKV-Details —> store size 使用的指标是 sum(tikv_engine_size_bytes)
6.5.3的 TiKV-Details —> store size 使用的指标是 sum(tikv_store_size_bytes{type=“used”})

5.1.4 tikv_store_size_bytes没有type=“used”

6.5.3 使用 sum(tikv_engine_size_bytes)和 sum(tikv_store_size_bytes{type=“used”}) 的值差异很大,是什么原因导致的?

【附件:截图/日志/监控】



TiKV 监控面板上的 store size 是单个 TiKV 实例的数据文件(RocksDB 的 SST 文件)的大小总和。

嗯嗯,6.5和5.1监控指标变化的差异在哪?

我去服务器 /tidb-data/tikv-20162/db 看了容量 是对的

这个不清楚了,可以看看历史版本的记录,看有木有写

没看到有写。

TiKV 的版本更新会带来指标的变化,因此在不同版本的 TiKV 中,store size 使用的指标可能会有所不同。在 TiKV 5.1.4 版本中,store size 使用的指标是 sum(tikv_engine_size_bytes),而在 TiKV 6.5.3 版本中,store size 使用的指标是 sum(tikv_store_size_bytes{type="used"})

这两个指标的值差异很大的原因可能是因为它们统计的数据不同。tikv_engine_size_bytes 统计的是 TiKV 引擎层的数据大小,包括 RocksDB 中的 SST 文件大小、WAL 文件大小等,而 tikv_store_size_bytes 统计的是 TiKV 存储层的数据大小,包括 Region 数据大小、Raft Log 大小等。因此,这两个指标的值差异很大是正常的。

如果您需要更加详细的指标信息,可以使用 TiDB Dashboard 中的监控面板进行查看。在监控面板中,您可以查看各个组件的详细指标信息,并且可以根据需要进行自定义配置。具体的操作方法可以参考 TiDB 官方文档中的相关章节 [1]

1 个赞

https://docs.pingcap.com/zh/tidb/v7.3/partitioned-raft-kv

可能和上述特性有关。

从指标的区别上看,tikv_engine_size_bytes这个指标是从rocksdb里面统计的。

https://github.com/search?q=repo%3Atikv%2Ftikv+tikv_engine_size_bytes&type=code

tikv_store_size_bytes这个指标,则是tikv自己统计的。

https://github.com/search?q=repo%3Atikv%2Ftikv+tikv_store_size_bytes&type=code

所以大概率是依靠rocksdb统计已经不足以统计所有的情况下,才需要一个新的指标。

从6.6就开始不断引入的partitioned-raft-kv正好会使用多个rocksdb实例。
就有点像是这个改进引入的指标变化。

1 个赞

感谢解答

多谢大佬!

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