配备固态硬盘的服务器比机械硬盘快多少?固态硬盘的出现。然而,作为一个关心性能数字的开发人员,我想更准确地了解配备SSD的服务器的IO性能与配备HDD的服务器相比快多少,在顺序IO的情况下快多少,随机IO的速度有多快?最近终于抽空做了一个性能测试对比。测试环境中找到两台服务器,其磁盘均为Raid阵列,分别配备SSD和HDD。更详细的配置如下:HDD真机:Raid卡型号为PERCH730Mini,1GBRAM缓存由4块500GBSSDraid5组成,可用容量1.3TSSD真机:Raid卡型号同Raid5,由7块300G组成HDD硬盘,可用容量为1.6T。参赛选手就位后,选择压测工具fio。指定比例(压力)匹配(测量)规则(参数)如下:IO引擎:为了充分对硬盘施加压力,选择异步方式libaioPageCache:为了更接近磁盘本身的性能,开启Direct参数绕过linux系统的内存Cache压测对象:保险起见,没有使用rawdevice,使用的文件大小:100GB,因为我的Raid卡缓存是1G,有保障远大于缓存调度策略:选择commonnoop对比测试正式开始。对于顺序读PK,我们首先在顺序访问下进行测试,因为在这种环境下,无论是机械硬盘还是固态硬盘,性能都会达到最优。IO大小从512K到1M不等。先来看看机械硬盘:固态硬盘下:从这个数据来看,在顺序IO的情况下,搭载HDD的服务器IO性能并不比搭载HDD的服务器低多少固态硬盘。这是因为在sequentialIO的情况下,RAID卡的命中率很高,尤其是设置了RAIDprefetch的时候。顺序IO也是机械盘工作最好的状态。因此,在现代服务器领域,SSD的使用只会越来越多,但还不能完全取代HDD。其中一个原因就是机械硬盘的顺序IO其实并不慢,再加上Raid的加持,所以还是有很大的市场份额。对比完顺序IO,我们再来对比另一个应用场景,随机IO。随机读取PK。记得一开始我们在fio压测参数中禁用了PageCache,测试文件大小设置为100GB,大大超过了Raid卡的缓存大小。所以,在这种前提下基于随机IO,各级缓存基本没什么用,IO性能的快慢完全取决于硬盘本身。在《机械硬盘随机IO慢的超乎你的想象》中,我们认为机械硬盘的随机IO性能实在是太糟糕了。再来看看配备SSD的服务器的IO性能:相比之下,机械硬盘的随机IO速度确实没有一般的慢。我们在上面的结果中选择了业务最认可的4KIO大小。从带宽上看,吞吐量不到1M。从延迟来看,大概是4.4ms,再看4KIOSize在SSD下的表现。同等条件下的SSD可以有32M。从带宽来看,还有32M,比HDD快了几十倍。从延迟来看,大概是120us。与HDD相比是4400:120,也是几十倍的提升。在顺序IO的情况下,由于有Raid卡缓存的加持,基于HDD的Raid阵列服务器在IO性能上并没有受到太大的影响。但在随机读取场景下,不管是带宽还是延迟指标,SSD都比HDD快几十倍。所以SSD在服务器上的应用主要是解决随机IO的问题。所以如果你的服务器PageCache太多,Raidcardcache无法处理的随机IO请求,那么请将HDD换成SSD。练内功练硬盘特技:1、开盘:剥去机械硬盘的硬外衣!2.磁盘分区也暗示技术水平。3、机械硬盘速度慢,容易坏,如何解决?4.拆解SSD结构5.一个新的空文件占用多少磁盘空间?6.一个只有1字节的文件实际占用多少磁盘空间?7、为什么文件太多时ls命令会卡住?8.理解格式化原理9.读取文件一个字节实际会发生多少磁盘IO?10.文件写入一个字节后什么时候开始写磁盘IO?11、机械硬盘的随机IO比你想象的要慢。12、服务器配置固态硬盘比机械硬盘快多少?我的公众号是《练内功》。在这里,我不是简单地介绍技术理论,也不是只介绍实践经验。而是理论联系实际,用实践加深对理论的理解,用理论提高技术实践能力。欢迎关注我的公众号,分享给你的朋友吧~~~
