TiDB 视图统计大小、监控中显示大小、实际磁盘占用空间思考?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
TiDB 视图统计大小、监控中显示大小、实际磁盘占用空间思考?发现实际占用空间比与视图,与监控中的空间对上。请问怎么准确统计表大小、数据库大小?
磁盘34 GB 监控49 视图142 。视图与监看的比例约3:1

集群信息:
Starting component cluster: /home/tidb/.tiup/components/cluster/v1.12.3/tiup-cluster display lbtest
Cluster type: tidb
Cluster name: lbtest
Cluster version: v6.5.3
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://xxxxxxxxxx:2479/dashboard
Grafana URL: http://xxxxxxxxxx:3000
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir


xxxxxxxxxx:3000 grafana xxxxxxxxxx 3000 linux/x86_64 Up - /data/tidb-deploy/grafana-3000
xxxxxxxxxx:2379 pd xxxxxxxxxx 2379/2380 linux/x86_64 Up|L /data/tidb-data/pd-2379 /data/tidb-deploy/pd-2379
xxxxxxxxxx:2479 pd xxxxxxxxxx 2479/2480 linux/x86_64 Up|UI /data/tidb-data/pd-2479 /data/tidb-deploy/pd-2479
xxxxxxxxxx:9090 prometheus xxxxxxxxxx 9090/12020 linux/x86_64 Up /data/tidb-data/prometheus-9090 /data/tidb-deploy/prometheus-9090
xxxxxxxxxx:4000 tidb xxxxxxxxxx 4000/10080 linux/x86_64 Up - /data/tidb-deploy/tidb-4000
xxxxxxxxxx:5000 tidb xxxxxxxxxx 5000/10081 linux/x86_64 Up - /data/tidb-deploy/tidb-5000
xxxxxxxxxx:20160 tikv xxxxxxxxxx 20160/20180 linux/x86_64 Up /data/tidb-data/tikv-20160 /data/tidb-deploy/tikv-20160
xxxxxxxxxx:20161 tikv xxxxxxxxxx 20161/20181 linux/x86_64 Up /data/tidb-data/tikv-20161 /data/tidb-deploy/tikv-20161
xxxxxxxxxx:20162 tikv xxxxxxxxxx 20162/20182 linux/x86_64 Up /data/tidb-data/tikv-20162 /data/tidb-deploy/tikv-20162

视图查询数据库总大小:142GB

普罗米修斯监控:49.2GB

磁盘存储信息:
统计db 占用磁盘空间大小:34GB
[tidb@xxxxxxxxxxxx tidb-data]$ du -sh *
4.0K cdc-data
4.0K monitor-9100
414M pd-2379
485M pd-2479
36G prometheus-9090
101G tikv-20160
98G tikv-20161
97G tikv-20162
[tidb@xxxxxxxxxxxx tidb-data]$
[tidb@xxxxxxxxxxxx tidb-data]$ cd tikv-20160
**[tidb@xxxxxxxxxxxx tikv-20160]$ du -sh ***
11G db
12K import
20K last_tikv.toml
0 LOCK
0 raftdb.info
6.9G raft-engine
301M rocksdb-2023-07-28T16-12-18.302.info
301M rocksdb-2023-09-08T10-48-42.537.info
301M rocksdb-2023-10-13T00-09-34.548.info
301M rocksdb-2023-11-21T02-57-02.361.info
301M rocksdb-2023-12-27T18-13-02.481.info
146M rocksdb.info
4.0K snap
82G space_placeholder_file
[tidb@xxxxxxxxxxxx tikv-20160]$ cd …/tikv-20161
**[tidb@xxxxxxxxxxxx tikv-20161]$ du -sh ***
11G db
12K import
20K last_tikv.toml
0 LOCK
0 raftdb.info
4.4G raft-engine
301M rocksdb-2023-07-27T20-22-10.824.info
301M rocksdb-2023-09-04T21-20-42.265.info
301M rocksdb-2023-10-10T13-52-08.023.info
301M rocksdb-2023-11-19T15-42-26.124.info
301M rocksdb-2023-12-28T07-15-21.382.info
141M rocksdb.info
4.0K snap
82G space_placeholder_file
[tidb@xxxxxxxxxxxx tikv-20161]$ cd …/tikv-20162
**[tidb@xxxxxxxxxxxx tikv-20162]$ du -sh ***
12G db
12K import
20K last_tikv.toml
0 LOCK
0 raftdb.info
2.5G raft-engine
301M rocksdb-2023-07-27T20-09-17.561.info
301M rocksdb-2023-09-06T05-07-10.879.info
301M rocksdb-2023-10-15T01-26-02.859.info
301M rocksdb-2023-11-22T23-59-09.160.info
301M rocksdb-2023-12-29T07-30-34.125.info
139M rocksdb.info
4.0K snap
82G space_placeholder_file

我最近出现主备库,相同数据备库硬盘占用比主库多了1倍,真搞不清楚为什么

看看,官方怎么答复。

他们说遇到过这个问题,想办法在改进。。

我用mysql的方式查询表大小

在等广州表妹出现

这个问题我也一直没看明白

这个和物理空间占用没关系

目前计算单表单库的实际数据大小没有特别准确的方式,系统视图查出来的都是基于统计信息估算的。

监控上的空间计算可以参考这篇文章:

tidb按这个查
SELECT
db_name,
table_name,
ROUND(SUM(total_size / cnt), 2) Approximate_Size,
ROUND(SUM(total_size / cnt / (SELECT
ROUND(AVG(VALUE), 2)
FROM
METRICS_SCHEMA.store_size_amplification
WHERE
VALUE > 0)),
2) 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 = ‘sbtest’
AND table_name IN (‘sbtest1’)
GROUP BY db_name , table_name , region_id) tabinfo
GROUP BY db_name , table_name;

就我上次那个主备库占用磁盘不一致问题,用你的sql查全库合计
主库
Approximate_Size 249523.00
Disk_Size 114987.56
备库:
Approximate_Size 374578.00
Disk_Size 309568.6

查类似mysql的tables视图,也就26929.02MB,完全不知道为什么空间占用如此离谱,差一个数量级

mysql直接看下主机上的目录大小呢,tables是基于统计信息的,但是统计信息不一定准。

分布式下,查看某个表,从主机查看还是不太方便,我也在找准确预估表大小的方式

tables如果分析过还是基本准的,目录全是sst文件占用,所以很头疼占用空间如此之大

是的,这个问题可能会导致空间资源评估出现偏差,可能会影响次年的采购数量的不准。

是的,我担心的是采购服务器硬盘的时候到底要多大容量

表大小的计算看官网的这里。
TiDB 集群管理常见问题 | PingCAP 文档中心