当前位置:网站首页>搭载固态硬盘的服务器究竟比机械硬盘快多少
搭载固态硬盘的服务器究竟比机械硬盘快多少
2020-11-08 16:17:00 【张彦飞allen】
相信大家都知道固态硬盘(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.搭载固态硬盘的服务器究竟比搭机械硬盘快多少?
我的公众号是「开发内功修炼」,在这里我不是单纯介绍技术理论,也不只介绍实践经验。而是把理论与实践结合起来,用实践加深对理论的理解、用理论提高你的技术实践能力。欢迎你来关注我的公众号,也请分享给你的好友~~~
版权声明
本文为[张彦飞allen]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4746202/blog/4707202
边栏推荐
- Builder pattern
- Improvement of rate limit for laravel8 update
- [Python 1-6] Python tutorial 1 -- number
- 聊聊Go代码覆盖率技术与最佳实践
- We made a medical version of the MNIST dataset, and found that the common automl algorithm is not so easy to use
- “他,程序猿,35岁,被劝退”:不要只懂代码,会说话,胜过10倍默默努力
- Development of uni app imitating wechat app
- Drink soda, a bottle of soda water 1 yuan, two empty bottles can change a bottle of soda, give 20 yuan, how much soda can you
- 技术总监7年总结,如何进行正确的沟通?
- Mac环境安装Composer
猜你喜欢

我们做了一个医疗版MNIST数据集,发现常见AutoML算法没那么好用

STM32CubeIDE下载安装-GPIO基本配置操作-Debug调试(基于CMSIS DAP Debug)

Improvement of rate limit for laravel8 update

Learn to record and analyze

打工人,打工魂,抽终身会员,成为人上人!

【Python 1-6】Python教程之——数字

wanxin finance

How to cooperate with people in software development? |Daily anecdotes

3、 The parameters of the function

Improvement of maintenance mode of laravel8 update
随机推荐
Flink的sink实战之一:初探
Summary of rendering of water wave and caustics (etching) in webgl
我用 Python 找出了删除我微信的所有人并将他们自动化删除了
TypeScript(1-2-2)
Windows下快递投递柜、寄存柜的软件初探
京东落地DevOps平台时爆发的冲突如何解决?
Design by contract (DBC) and its application in C language
Returning to the third place in the world, what did Xiaomi do right?
小青台正式踏上不归路的第3天
Is there no way out for older programmers?
On the concurrency of update operation
构建者模式(Builder pattern)
浅谈,盘点历史上有哪些著名的电脑病毒,80%的人都不知道!
It's just right. It's the ideal state
[Python 1-6] Python tutorial 1 -- number
Improvement of maintenance mode of laravel8 update
Travel notes of Suzhou
AI weekly: employees are allowed to voluntarily reduce salary; company response: employees are happy and satisfied; tiger tooth HR takes employees out of the company; Sweden forbids Huawei ZTE 5g equi
Welcome to offer, grade P7, face-to-face sharing, 10000 words long text to take you through the interview process
LiteOS-消息队列