tikv磁盘大小、region数实践

【 TiDB 使用环境】生产环境 /测试/ Poc
生产环境
【 TiDB 版本】
tidb v6.5.5和v5.4.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
咨询:
1、生产实践是否有使用hdd磁盘部署集群的?
2、单个tikv最大有使用多大hdd磁盘?磁盘使用率和region数(30g 内存tikv配置)
3、hdd和ssd性能差距多大
4、使用hdd大盘,单个tikv region数建议,建议region大小
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

接触过大大小小的tidb集群不下百套吧,稍微说一下个人观点。

1、生产没碰到用hdd部署tikv的,tidb倒是要求没那么高,但往往pd和tidb是混部的,所以基本也没有用hdd的。曾经碰到有客户用NAS盘的虚拟机部署,pd和tikv经常出现莫名的问题,问题都指向磁盘性能不足,最后十多套这样的集群全部换盘。
2、你30G内存的tikv节点我估计cpu能给8-12c顶天了吧,如果是用ssd盘可能1T都绰绰有余了,hdd的话只能更小(木桶原理)
3、性能差非常多,ssd通常分为3个等级:sata ssd(500M/s左右)、sas ssd(800M/s左右)、nvme ssd(2000M/s往上),普通hdd能有300M/s不得了了
4、一般来说盘大对应需要的cpu和内存也越大,除非你是那种冷归档数据场景写多读少,看你的需求,一般情况下不建议hdd

总结,并不是hdd不能跑tidb,只是风险极高,容易碰到各种奇葩问题,最后各种咨询下来还是要换盘,没必要瞎折腾。

1 个赞

他可以接受降低操作频率,减少数据处理大小,来适应配置降低也可以的 :laughing:

论单次IO
一般SSD固态硬盘单次IO可以做到0.1ms-1ms ,HDD机械硬盘单次IO的时间为4-10ms。

ssd和hdd性能差距一个天一个地,你可以自己做个io的测试

IOPS 测试参考命令

fio -group_reporting -thread -name=iops_test -rw=randwrite -direct=1 -size=8G -numjobs=8 -ioengine=psync -bs=4k -ramp_time=10 -randseed=0 -runtime=60 -time_based

读写带宽测试参考命令

fio -group_reporting -thread -name=iops_test -rw=randwrite -direct=1 -size=8G -numjobs=8 -ioengine=psync -bs=1m -ramp_time=10 -randseed=0 -runtime=60 -time_based
fio -group_reporting -thread -name=iops_test -rw=randread -direct=1 -size=8G -numjobs=8 -ioengine=psync -bs=1m -ramp_time=10 -randseed=0 -runtime=60 -time_based

nvme的都是μm,到ms延时就出问题了

io hdd和ssd肯定区别很大,也测过单盘ssd和hdd io,单盘读写io看着理论上是满足的,如果没有热点这些问题,tikv实例多,读写好像才几十MB,所以想看看生产实践有没有hdd部署过tikv

用hdd部署的都后悔了。
使用tidb的用户数据量都大,用hdd性能上不去,慢查询里都是insert,最后都换ssd了

有大概写入量级以及总存储量级别?

nvme 是比普通的ssd更快,之前价格比较高,现在好像也差不多了。
不过现在ssd硬盘和普通机械盘价格已经差不多了,所以要是新采购还是ssd更好。

早5年前就没碰到过hdd的数据库了

见到的集群一般都是单个tikv的region数在20k以下,hdd的没有用过
如果存冷数据,hdd也是可以考虑的

1 个赞

1、我这边基本全是hdd磁盘。
2、参照官方文档,建议也不要超过这个大小。


3、取决于业务需求,普通业务其实感觉上差异不大。但是一定要做fio磁盘测速,心里有个底。
4、region应该用默认大小就可以吧。

HDD硬盘与SSD与10-20倍的性能差距,磁盘的大小与数据量有关,通常为数据量的2-3倍,REGINON按照业务情况和类型走,业务偏向于大表大事务,REGION可以适当调大。

region根据数据量大小决定

现在基本都用ssd吧

你们生产的ssd iops和读写带宽大概能到多少,能给个测试结果,我比对下我们现在的环境

我用的阿里云的本地ssd,之前做过和阿里云essd云盘做的对比。测试方法有阿里云提供的和TIDB提供的2种,阿里云提供的有点理想化。

1 个赞

280k iops这已经超过正常单块nvme ssd速度了吧

IOPS不是一个等级的