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