三台TIKV机器存储严重负载不均衡

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.2.3

【遇到的问题:问题现象及影响】
三台机器TIKV存储严重负载不均衡


an按道理说TIKV自己会负载均衡 为啥我三台差这么多,

tikv-details 中的leader 和region 分布是均匀的

可是 问题确实 store-1数据 明显很少

有个大表,都分配到store1这个节点了吧,然后压缩率比其它表高很多
1715663285513

一个大表?TIKV不是一份数据 复制三份吗?我STORE1是磁盘占有 最少的 压缩率这个东西 咋控制 为啥 我的store1压缩率 高

看下监控tsp-prod-tidb-cluster-Overview中kv的region分布呢?

TiKV master 和 slave 用的是一样的压缩算法,为什么效果不一样?

目前来看 master 有些文件的压缩率会高一些,这个取决于底层数据的分布和 RocksDB 的实现,数据大小偶尔有些波动是正常的,底层存储引擎会根据需要调整数据。

所以我这种情况是正常的?只是数据压缩比率不同


sh是这个吗 我看都一样

那数据是平衡的,你查下是不是有其他文件占用了磁盘空间比如日志之类的

日志没有 我看了 就是db大小不一致
image
image
image

我看你的数据库版本有点老,【 TiDB 版本】5.2.3,估计有什么bug吧。
我们使用tidb 7.2没遇到这问题

应该还是gc的bug,有些节点的gc清理有问题,导致数据量一致,但是占用空间大

  1. 临时解决方案:可通过禁用 gc.enable-compaction-filter,并重启集群。
  2. 永久解决方案:升级 TiDB 集群版本,永久解决。

升级集群版本试试

感觉是GC导致的,试试升级版本吧

可以看看这个页面pd里面的Region health是否有空region。

5.2.3版本太老了,建议升级试试,老版本找支持也有点费劲

看下文档
https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices#leaderregion-分布不均衡

https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices#负载均衡

应该是有热点表,看看如果小于64m,可以做成热点表缓存。