相信你们都知道固态硬盘(SSD)的优点在于速度比传统的机械硬盘(HDD)要快,因此如今线上服务器里愈来愈多看到固态硬盘的出现。不过做为一个对性能数字斤斤计较的开发,我想更精确地弄明白搭载SSD的服务器在IO性能上比搭载HDD的究竟快多少,顺序IO状况下快多少,随机IO状况下又能快多少?终于在最近抽空搞了一次性能测试对比。缓存
分别找了两台服务器,其磁盘都是Raid阵列,分别是搭载SSD和HDD,更详细的配置以下:服务器
好了,比赛选手已经就位,再选择压测工具fio。指定比(压)赛(测)规(参)则(数)以下:异步
对比测试正式开始。工具
咱们先进行顺序访问下的测试,由于这个环境下不管是机械硬盘,仍是固态硬盘,性能都将会是最优的。IO大小从512K一直到1M。oop
先来看一下机械硬盘:性能
在固态硬盘下:
测试
这个数据看来,在顺序IO状况下,其实搭载HDD的服务器IO性能并无被搭载ssd的落下太多。这是由于对象
因此,现代在服务器领域里,SSD只是应用愈来愈多了,但并无可以全面替代HDD。缘由之一是由于机械硬盘的顺序IO其实并不慢,再加上Raid的加持,因此还有很大的市场占比。
比较完了顺序IO,咱们再来比较另一个应用场景,随机IO。blog
还记得开头的fio压测参数中咱们把Page Cache给禁用了,再加上测试文件的大小定的是100GB,这个大大超过了Raid卡的缓存大小。因此基于这个前提下的随机IO,各级缓存基本都失去用武之地了,IO表现速度就彻底看硬盘自身了。内存
在《机械硬盘随机IO慢的超乎你的想象》中,咱们看来机械硬盘的随机IO的表现真的是太糟糕了。
再来看搭载SSD的服务器IO表现:
对比来看,机械硬盘的随机IO的速度可真的不是通常的慢,咱们挑选上述结果中最被业务承认的4K IO size来看。
再看固态硬盘下的4K IO Size下的表现。而同等条件下的SSD可有32M。
在顺序IO的状况下,由于有Raid卡缓存的加持,基于HDD组成的Raid阵列服务器在IO性能上并无太落下风。可是在随机读取的场景下,不管带宽仍是延迟指标,SSD都要比HDD快几十倍以上。
因此在服务器中应用SSD,更主要解决的是随机IO的问题。因此若是你的服务器里存在过多的Page Cache,Raid卡缓存都兜不住的随机IO请求,那么请把HDD更换成SSD吧。
开发内功修炼之硬盘篇专辑:
个人公众号是「开发内功修炼」,在这里我不是单纯介绍技术理论,也不仅介绍实践经验。而是把理论与实践结合起来,用实践加深对理论的理解、用理论提升你的技术实践能力。欢迎你来关注个人公众号,也请分享给你的好友~~~