作者: tidb狂热爱好者

很多小伙伴在使用tidb时对网络磁盘,本地磁盘不了解闹出了很多乌龙。我就简单明了的讲解一下网络磁盘的原理。

硬件的三级缓存理论 从磁盘-〉内存-〉cpu。原本单机物理磁盘的访问路径为ssd载入到内存 速度2048m/s。

通过网络载入。中间会受到网络波动,网络延时,网络带宽限制。2者架构上的差距是带宽,延迟。带宽2者差距到100倍

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_https

具体表现为备份速度。查询速度,导出速度

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_blog_02

像这个图带宽打满。从10点导出到12点结束。花费2个小时。

磁盘速度对备份的影响

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_blog_03

备份 如果是本地盘备份1小时结束。3t数据量

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_2048_04

如果是网络磁盘 备份200g数据量需要 3小时

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_.net_05

如果是本地磁盘 备份1000g数据量需要1小时

tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。_https_06

磁盘速度对业务吞吐量的影响

因为磁盘性能差。一个耗时sql打过来最后会转变成对磁盘的读取。最后一个sql都会对应具体的kv数量1kv如果是10kb。取1000条就是10000k。然后通过小水管10m每秒传输。如果业务有并发请求。达到了10m的带宽瓶颈。tidb就被打死了。

你配置差的磁盘,就对业务的sql要求会非常高,需要业务不能写任何慢sql。一旦执行了一个慢sql就会引起雪崩。整个tidb不可用。

就比如一个sql读取了30分钟。那30分钟内。所有业务不可用

磁盘速度增加索引的影响

因为磁盘性能差。比如对100g表的一个12g字段增加索引。

10*1024/12*2=2048 将近需要2048秒才能完成 先读取,再写入,这其中业务几乎不可用。

综上所述,tidb拒绝网络磁盘,无论他是ssd网络磁盘还是hhd网络磁盘。基于云的特性。只要是网络的东西都是共享使用的。把一个ssd盘做切片 每个人分到一点点性能。再通过网络延时这种影响。对数据库的性能影响非常大。