ryans
1
【 TiDB 版本】
V5.1.2
【问题】
由于TiDB属于基础建设,需要对各个团队的资源使用情况进行统计,具体要细分到表这一级别。
目前看到grafana只有集群和机器总体磁盘容量,并未有每个表所占据的实际容量(压缩后)。
mysql的统计命令似乎在分布式系统上并不准确
我尝试使用SHOW TABLE x_tab REGIONS
命令来统计,但行数太多了并无法肉眼处理
我尝试使用该语句select * from(SHOW TABLE x REGIONS) limit 1;
但显然他是无法正常工作的
所以我怎样才可以方便快捷的统计出各个表的各种信息呢?
1 个赞
啦啦啦啦啦
2
SHOW TABLE x_tab REGIONS的数据可以直接在INFORMATION_SCHEMA下TIKV_REGION_STATUS表里取
select * from INFORMATION_SCHEMA.TIKV_REGION_STATUS where TABLE_NAME='xx';
数据小黑
(数据小黑)
3
试试:
select `instance` ,max(value) from tikv_store_size
where `type` = 'used'
group by `instance` ;
ryans
4
mysql> SHOW TABLE x_tab REGIONS \G
*************************** 1. row ***************************
REGION_ID: 32222634
START_KEY: t_102_5f729664b28db101cc00
END_KEY: t_128_5f728000000000000014
LEADER_ID: 32226543
LEADER_STORE_ID: 8
PEERS: 32226543, 32228171, 32228243
SCATTERING: 0
WRITTEN_BYTES: 7441
READ_BYTES: 8538
APPROXIMATE_SIZE(MB): 97
APPROXIMATE_KEYS: 405222
1 row in set (0.00 sec)
话说,像是这张图里,regionid指的是region group id嘛?
https://docs.pingcap.com/zh/tidb/dev/sql-statement-show-table-regions
这个文档里描述的是region id。这样的话,32222634既不是region leader id,也不是region peers id,很奇怪。
如果搜出来一行是一个region group的话,我是否计算数据量就不需要乘副本数,只需要乘压缩系数了呢?
啦啦啦啦啦
5
这块没找到相关的说明,可能得实际测试下了,有结果希望大佬能反馈下。
ryans
7
请问下这个是包含副本容量在内的,还是要自己乘副本数呢?文档里好像没这块备注
啦啦啦啦啦
8
information_schema.tables是不考虑副本的,数据长度 = 统计信息中的行数 × 元组各列存储长度和。这个依赖统计信息,一般不太准。
1 个赞
h5n1
(H5n1)
9
information_schema下TIKV_REGION_STATUS中有TABLE_ID、APPROXIMATE_SIZE列和tables表关联查下,虽不是实际的大小,可以计算出各个库的大概比例
1 个赞
ryans
10
数据量统计完了,这里我认为他是指的region group id。容量包含了所有副本。
因为我磁盘才用了1T,这表所有加起来2T,算下来压缩到50%。
如果他不算副本数,那总不可能3副本的6T压缩成1T,压缩到20%基本不可能出现
system
(system)
关闭
12
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。