置信大家都晓得固态硬盘(SSD)的劣势在于速度比传统的机械硬盘(HDD)要快,所以当初线上服务器里越来越多看到固态硬盘的呈现。不过作为一个对性能数字宽宏大量的开发,我想更准确地弄明确搭载SSD的服务器在IO性能上比搭载HDD的到底快多少,程序IO状况下快多少,随机IO状况下又能快多少?终于在最近抽空搞了一次性能测试比照。
测试环境
别离找了两台服务器,其磁盘都是Raid阵列,别离是搭载SSD和HDD,更具体的配置如下:
HDD实机:
Raid卡型号是PERC H730 Mini,1GB RAM缓存
4块500GB SSD组成的raid5,可用容量1.3T
SSD实机:
Raid卡型号同上
7块300G HDD硬盘组成的Raid5,可用容量1.6T
好了,较量选手曾经就位,再抉择压测工具fio。指定比(压)赛(测)规(参)则(数)如下:
IO引擎:为了给硬盘充沛施压,选用异步形式libaio
PageCache:为了更靠近磁盘自身性能,开启Direct参数绕开Linux零碎的内存缓存
压测对象:稳当起见,没有应用裸设施,用的文件
文件大小:100GB,因为我的Raid 卡缓存是1G,保障远远大于缓存
调度策略:抉择常见的noop
比照测试正式开始。
程序读取PK
咱们先进行程序拜访下的测试,因为这个环境下无论是机械硬盘,还是固态硬盘,性能都将会是最优的。IO大小从512K始终到1M。
先来看一下机械硬盘:
在固态硬盘下:
这个数据看来,在程序IO状况下,其实搭载HDD的服务器IO性能并没有被搭载ssd的落下太多。这是因为
程序IO的状况下,RAID卡的命中率高,尤其是设置了RAID预取
自身程序IO也是机械磁盘工作最善于的状态
所以,古代在服务器畛域里,SSD只是利用越来越多了,但并没有可能全面代替HDD。起因之一是因为机械硬盘的程序IO其实并不慢,再加上Raid的加持,所以还有很大的市场占比。
比拟完了程序IO,咱们再来比拟另外一个利用场景,随机IO。
随机读取PK
还记得结尾的fio压测参数中咱们把Page Cache给禁用了,再加上测试文件的大小定的是100GB,这个大大超过了Raid卡的缓存大小。所以基于这个前提下的随机IO,各级缓存根本都失去用武之地了,IO体现速度就齐全看硬盘本身了。
在《机械硬盘随机IO慢的超乎你的设想》中,咱们看来机械硬盘的随机IO的体现真的是太蹩脚了。
再来看搭载SSD的服务器IO体现:
比照来看,机械硬盘的随机IO的速度可真的不是个别的慢,咱们筛选上述后果中最被业务认可的4K IO size来看。
带宽角度看,只有不到1M的吞吐,
提早角度看,在4.4ms左右
再看固态硬盘下的4K IO Size下的体现。而同等条件下的SSD可有32M。
带宽角度看,依然有32M,比HDD能快几十倍
提早角度看,大概120us左右。比HDD,就是4400:120,也是几十倍的晋升
总结
在程序IO的状况下,因为有Raid卡缓存的加持,基于HDD组成的Raid阵列服务器在IO性能上并没有太落下风。然而在随机读取的场景下,无论带宽还是提早指标,SSD都要比HDD快几十倍以上。
所以在服务器中利用SSD,更次要解决的是随机IO的问题。所以如果你的服务器里存在过多的Page Cache,Raid卡缓存都兜不住的随机IO申请,那么请把HDD更换成SSD吧。
开发内功修炼之硬盘篇专辑:
1.磁盘开篇:扒开机械硬盘坚挺的外衣!
2.磁盘分区也是隐含了技术技巧的
3.咱们怎么解决机械硬盘既慢又容易坏的问题?
4.拆解固态硬盘构造
5.新建一个空文件占用多少磁盘空间?
6.只有1个字节的文件理论占用多少磁盘空间
7.文件过多时ls命令为什么会卡住?
8.了解格式化原理
9.read文件一个字节理论会产生多大的磁盘IO?
10.write文件一个字节后何时发动写磁盘IO?
11.机械硬盘随机IO慢的超乎你的设想
12.搭载固态硬盘的服务器到底比搭机械硬盘快多少?