TIBD集群存储预估

【 TiDB 使用环境】生产环境
【遇到的问题:问题现象及影响】
现在数据都在mysql5.7里面,大概2个T数据,现在想知道这个2个T数据如果放到tidb集群三副本,会大概占用多少tikv的存储空间,不是有默认压缩比吗?想预估一下存储空间的大小,大神有经验的帮忙回复一下,我就不用测试了

1 个赞

参考下这里吧

1 个赞

TiKV总存储空间 ≈ MySQL原始数据量 × 单副本压缩比(反向,即1/压缩率) × 三副本系数 × 预留冗余系数

  • MySQL 原始数据量:你的场景是 2TB(注意区分「逻辑数据量」和「MySQL 物理文件大小」,这里默认是数据目录(ibdata1+ibd文件)的实际磁盘占用 2TB);
  • TiKV 单副本压缩比:TiKV 底层使用 RocksDB 存储,默认开启LZ4 压缩算法(兼顾压缩率和性能),这是核心压缩环节;
  • 三副本系数:TiDB 默认三副本存储(高可用要求),系数为3
  • 预留冗余系数:用于应对数据碎片、索引膨胀、后续业务写入,经验值为1.2~1.5(生产环境必留,避免磁盘占满)。
2 个赞

那我估计2倍应该差不多了是吧

2 个赞

tidb压缩率比mysql高,不过算上3副本按2倍预留应该够了,想要算准确一点的就按方法二算算吧。

1 个赞

还得考虑节点数,比如mysql总数据10G,假设压缩率是2,那tidb是10*3/2=15G,但是,假设tidb是3台服务器,每台服务器的存储其实就是15/3=5G。这样算单台服务器比之前是少了。

1 个赞

官网硕士2.5倍压缩呢吧

总存储至少 3.5T以上

MVCC 版本链 索引膨胀 Region Split 与 Compaction这些都要预留多一点空间. 大概10%-15%

mysql至少也会有一个从库,这么来看的话,tidb使用的空间并没有比MySQL大大多

一般3个T差不多了,3节点的话,一个节点一个T,但是你的业务数据肯定还会增长啊,所以得按照业务多申请点空余空间融合增长数据

单台服务器1-1.2T吧,不过可以预留一点

我看回复有提到预留问题,我也觉得就算是具备压缩功能,最好也预留出冗余空间来

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