机械硬盘与SSD固态硬盘性能的深度

从7200转硬盘升级到10000转的迅猛龙,那叫量变。
从10000转的迅猛龙升级到SSD,这个叫质变。
2者的差距是有些地方相当大,而有些却很接近,主要是难比较。

经常听到有人说:我买2个黑盘组RAID 0,传输率也有接近250MB/s了,这个速度和Intel X25-M不相上下了,写入还高,容量又大,性价比明显好。一开始还试着会去纠正下他这个错误的观念,后来麻木了。有时候并不是他不懂,可能他是个商家,或者是刚买了黑盘的用户,又或者只是想"炒作"下,世界之大,啥人都会有么。

废话不多说了,下面我来说说自己的感觉。我用过7200转的机械盘,组过RAID 0。我也用过10000转的猛禽,组过RAID 0,我还用过SAS的15000转3.5inch还有2.5inch的盘,组过多盘RAID 0,用过早期的MLC,SLC,组过RAID 0,现在在用MLC的SandForce和barefoot SSD。
首先,先来看机械盘的运作,工作时磁盘在主轴马达的带动下,高速旋转,磁头臂在音圈马达控制下,在磁盘上方进行径向的移动和寻址,机械盘常见指标有下面几个:

1,每分钟转速:指的是主轴马达带动磁盘的转速,一般是7200~15000转,节能盘是5400转。(大家都知道)

2,平均寻道时间:一般是指读取的寻道时间,单位是ms。这个指标是说硬盘接到读/写指令后把磁头移动到指定的磁道(客观的说应该是柱面,但是相对指定的磁头来说就是磁道)上所需要消耗的时间。其实除了平均寻道时间外,还有道间寻道时间与全程寻道时间,前者是指磁头从当前磁道移动到旁边磁道上所需要时间,后者是指磁头从最外圈(内圈)移动到最内圈(外圈)磁道上所需要的时间,基本上是平均寻道时间的2倍。

3,平均潜伏期:这个指标是指当磁头移动到指定磁道后,需要等待指定读/写扇区移动到磁头下方所需要的时间。(盘片旋转),也就是说盘转速越快,潜伏期越短。一般平均潜伏期指的是磁盘转动半圈的时间,相同转速硬盘的平均潜伏期是固定的。7200转为4.167ms,5400转为5.556ms。

4,平均访问时间:这个就是平均寻道时间+平均潜伏期+指令操作时间,由于指令操作时间很短,所以一般就是前2者相加了,厂商一般不提供这个数据,因为不同固件,批次,会有不同,很难统一。

5,数据传输率:单位一般为MB/s,数据传输率就是传输速度了,大家都懂的。不同的数据请求会有不同的数据传输率,不过主要分外部传输率(接口)和内部传输率(介质)。外部就是指缓冲区与主机(内存)之间的数据传输率,内部指磁头与缓冲区之间的数据传输率。外部传输率会被接口限制,SATA 3G/6G, SAS 3G/6G, PCIE 4X, 8X等等接口会限制外部传输率,而内部传输率就是硬盘真正的数据传输能力。为了充分发挥内部传输率,外部传输率必须比内部传输率高。机械盘外圈磁道最长,可以让磁头在单位时间内比内圈磁道划过更多的扇区,所以外圈的内部传输率比内圈快。

6,缓冲区:单位为MB。有些人喜欢叫Cache。作用是平衡内部和外部的传输率。为了减少主机(内存)的等待时间,硬盘会把读取的数据先放入缓冲区,等全部读完或缓冲区填满后再以外部接口的速度快速向主机(内存)发送。随着技术发展,缓冲区在原本的基础上又增加了缓存的功能。缓存体现在3个方面:预读:磁盘“私自”扩大读取范围,在缓冲区向主机(内存)发送指定扇区数据(磁头已经读完指定扇区)后,接着读取相邻若干扇区并送入缓冲区,如果后面读取操作证号指向已经预读的区域,直接就可以从缓冲区读取而不需要再次磁头寻址,提高访问速度。写缓存:通常在写入操作时,先将数据写入缓冲区并发送到磁头,等磁头写入完毕后再报告主机写入完毕,主机才开始处理下一任务,如果写缓存被开启,那么数据写入缓冲区后即刻向主机报告写入完毕,让主机提前处理下一个数据,提高了效率。读缓存:读取过的数据暂时保存在缓冲区内,如果主机再次需要时可以直接从缓冲区调用,加快速度。(缓存有专门的控制器,有专门的算法,自然有不同的效率。不同容量的缓存算法不通用。)
1,转速与寻道时间:

很多人认为机械硬盘转速快寻道时间就越快,这个是常见的错误认识,事实上寻道速度根本和转速完全没关系,因为2者不是一个设备控制的。

看过上面解释的朋友应该发现,转速是由主轴马达控制的,而寻道很明显是由音圈马达控制,所谓寻道就是磁头臂径向运动的速度和控制。很多情况下我们可以看到5400转和7200转的硬盘寻道时间一样,而之所以高速硬盘寻道时间快,是厂商的有意设计,就像高配机器低内存那样让人觉得不平衡,厂商会给高速盘配备更好的元件也是理所当然。

2,转速与数据传输率:

厂商宣传和用户的理解都是,高转速意味着高数据传输率,但是这个并不完全正确。持续数据传输率取决于很多指标,不单单是转速。转速高,单位时间磁头划过的扇区多,自然传输率快,这个没错,但是前提要盘片密度相等,低速硬盘提高盘片密度一样可以提升数据传输率。5400转的高单碟容量硬盘传输率强过10000转的猛禽就是一个例子。只要单碟密度提升1倍,那么5400转和10000转比传输率就不会输。高转速的优势是平均潜伏期,因为转速是死的,在这种情况下5400转永远处于劣势。

3,真正的内部数据传输率:

硬盘传输率大家都懂,但是有个误区,拿Mbps为单位的最高内部传输率说事,这其实是某些厂商与所谓高手的误导,后果相当严重。由于内部传输率决定了硬盘的实际数据传输性能,是个非常重要的指标,很多用户也最关心这个指标,厂商就投其所好,在产品资料中公布了最大内部传输率,但是很多都是以Mbps为单位,不少用户会拿这个数值来预测硬盘性能。但是这个数值是不能单纯的以除以8来换算成MB/s的,因为这个数值是磁头处理2进制的0/1信号(bit)纯理论性能,而磁头处理信号很大部分并不是用户数据(很多重编码的辅助信息)。很多硬盘厂商把这个数值标的相当高,但是这个数值没有任何实际价值,给人假象而已。厂商心里很明白,他们"偷着乐"而已。

4,拿缓冲区容量和性能说事:

缓冲区容量越大越好吗?容量缓冲区对零散数据传输有优势,不见得。大缓冲区容量会带来很多新问题,比如忽然断电等情况,笔记本有电池会好点。而缓冲区对性能的影响体现在厂商的缓存管理技术上,每个厂商是不同的,不同缓冲区容量也不适用相同的算法。我们拿最新的WD 4KB扇区EAR盘来说吧,配备了64MB的缓冲区,相对32MB的EADS来的快吗?不一定,你知道这个多出来的32MB是用来做啥的吗?相当大一部分用来做4KB和512B的模拟转换开销,映射表。厂商不是傻子,增加成本的做法他们才不做。当然既然给多缓存了,广告还是要打的。缓存管理算法比缓存容量更重要,命中率才是关键,光有容量没命中率只会带来安全隐患。
接下来我们来看看SSD吧,SSD里面的介质是闪存,一般是用的NAND。SSD的优势体现在极低平均访问时间,SSD没有寻道(里面没磁头),没潜伏期(没盘片)。由这里可以看出,随机性能上SSD可以说是绝对秒杀机械硬盘,没有任何的机械硬盘可以和SSD比较。差距是非常巨大的,50~100倍以上。

SSD的控制器也比机械盘的控制器复杂的多,这样形容的话可能会明白点:我们知道一个34nm的Intel NAND MLC Die的容量为4GB,如果我手头有个80G的X25-M G2,那么就是20个Die组成的(10个闪存颗粒,每个颗粒里2个Die封装),因为Intel主控是10通道的,如果我们把这块SSD理解成一个10块机械盘的RAID 0会如何哪?U盘为啥慢,因为主控一般是单通或者双通的,而且NAND颗粒也差点。而SSD快就是因为主控强,不看接口限制的话10个U盘RAID 0速度也很可观哦。"10盘"RAID 0带来的就是传输率的暴增,再加上SSD独有的极低平均访问时间,如何能不快?SSD的主控要管理10个”盘“,而机械盘主控只要管好1个”盘“就行了,复杂度当然会完全不同了。再加上NAND的物理特性,-读写/擦单位不等,坏块管理,映射表管理(OS LBA和SSD 物理page),缓存算法等等..可以想象。朋友,不看外部接口(SATA),你买块SSD就等于是买了块阵列卡加"盘"啊。

以我用电脑的经验来看,WINXP SP3系统对内存的要求是768MB可以基本流畅,明显减少了磁盘虚拟缓存负担,大于768MB后瓶颈转向磁盘系统,再提高内存也无济于事,只有提高磁盘速度才能感觉到速度提升。对于磁盘系统来说,50MB/s和100MB/s的传输率在XP下是完全2个感觉,如果大于150MB/s,这个感觉就又小下来了。早期的磁盘单盘很难达到100MB/s的传输率,普遍在60MB/s附近,所以很多朋友组了RAID 0来提高传输率破100MB/s,这样会感觉性能的提升。相对的,如今100MB/s传输率的盘已经烂大街了,再组RAID 0到200MB/s对XP的提升已经不明显了,也就显得无意义了,除非你是”视频复制党“,天天没事来回拷视频。以上是XP的感想。

至于Vista这个系统,烂就烂在磁盘性能上,没事都要拖磁盘后腿(后台做乱七八糟的Search Indexing,Fetch等等),用户就会感觉磁盘灯永远不太平(熄不掉),这里就有个问题就被扩大了,哪个问题?平均访问时间。对了,相信组过RAID 阵列的用户会感觉到Vista系统明显流畅很多,单盘的话总是有这有那的不舒服(即使你的盘传输率再高)。(优化到极限的那种系统不算,啥都关了自然快了)特别是加了外置阵列卡(卡上有缓存),或者开了南桥回写的。(主板会用内存做缓存,比如Intel的RST驱动,会用8~16MB内存做缓存,所以很多用户在开了卷回写缓存的Intel阵列上跑HDtune会看到突发传输率XXXXMB/s的速度,这是因为Hdtune软件测的是目标传输率,爆发率自然是发生在内存上的)这是为啥哪?机械硬盘同一时间只能一个磁头读/写数据,虽然多盘片的硬盘每张盘片会有1到2个磁头,但是同一时间只有1个磁头是读/写的。那么当Vista在后台请求那些零碎文件的时候,硬盘就会来回的挪动磁头去处理这些碎小文件,而当用户要去读/写某些文件的时候,2者就会抢着轮流让磁头处理,自然传输率不稳定了。(很多用户应该有这个经历,单块硬盘不同分区之间传输文件速度很慢,如果是大文件的基本是一半速度,如果是小文件就会很悲剧,而如果是两块硬盘或者是RAID阵列,速度就会明显快很多)而RAID阵列下,每个磁盘都有1个磁头可以同时读/写,自然会减轻负担。所以对Vista这类系统来说,平均存取时间比传输率对系统的流畅度来的更重要。如果是SSD哪?情况自然好很多了,前面不是说了SSD就像是一套"磁盘阵列系统"么,还带”卡“。

这个是我的1块ST 160G的盘,型号ST160827AS。单跑64KB速度。

我跑2个任务,各跑64KB,2个位置跨度是10%的C盘29G(也就是2.9G)

跑2个任务,各跑64KB,2个位置跨度是90%,从160G的头到接近内圈90%初,(160GX 90%= 144G)跨度。

我们发觉跨度越大,速度越慢,到了90%跨度后,这个速度已经很离谱了,因为磁头来回寻道的关系,时间都浪费了。这就是机械盘单磁头存取和平均存取时间慢的限制,多任务性能肯定低下了,像Vista这类系统,能快起来吗?磁盘对拷机器卡的同志们,看到这个图还认为不应该“卡”吗?

Win7这个系统是在Vista基础上开发而来,不得不说进步不少,后台操作明显比Vista轻很多,这样对磁盘负担减轻不少。但是SSD的优势还是显得很明显,由于操作系统比XP来的”臃肿“,开机启动项,驱动,服务都比较多,内存占用也很大,开机时需要把更多的数据读进内存,一块高传输率的磁盘是必要的,当传输率达到一定程度后,平均存取时间的要求就来了,SSD有着传输率和平均存取时间的双方面优势,开机显得快自然很正常。在多核CPU和大内存的带领下,多任务变成家常便饭,势必带来多请求,对机械盘的同一时间单磁头读/写是个非常沉重的打击,RAID系统或者SSD在这个时候优势明显,SSD多开/秒开程序的速度相信都看过,这就是差距。所以在当今主流操作系统上,单块机械盘已经不可能完全发挥整个电脑的性能了,磁盘系统的瓶颈也就凸现出来。
为啥会有这个问题?呵呵,玩速度,就是折腾。咋样折腾都可以,只要体现出速度就成。比如CPU,显卡上大炮(液氮),显卡开管线,CPU开核,内存超频等等都是”玩“速度的表现。在磁盘系统上,所谓的”玩“无非体现在下面几种:个人用户拿RAM来虚拟磁盘,安装Cache软件,使用EWF系统,这些原本都是用来规避磁盘系统瓶颈的方式,但是很多用户都喜欢SHOW出来,这样就变成了玩了,我很难想象拿这类机器来工作,至少我还没这个胆量。而所谓的”用“速度,自然就是我们日常最基本的操作速度,自然加上少量的”优化“来降低那些无用的操作来提升平均磁盘能力也是必要的。SSD是个新事物,SSD是个无底洞,SSD的速度可以标的老高,只要堆(钱),你要多少速度就可以给你多少速度。但是这些都是量变,我们从机械盘到SSD已经有了质变了,这些量变又有啥意义哪?而且不管如何折腾,有一个速度是提不上去的,厂商也不会告诉你。哪个速度?随机读取QD1速度,这个速度是SSD速度的关键。用CDM做测试的朋友会发觉,不管啥SSD,4KB读取的速度永远在1xMB~3xMB/s之间徘徊,你永远见不到4xMB/s以上,这是硬性限制(缓存内存不算啊)。啥东西都要讲道理,数据也是,如果哪天你看到NAND这个数据变成1XXMB/s了,大哥,你看到火星来的产品了。NAND是不可能有这个速度的。为啥?因为NAND的读取延迟摆在那里,同一时间的请求数是固定的,相对的SLC会比MLC高点而已。堆出来的高端产品,数据很好看,厂商可以说几十万,几百万的IOPS,但是这些IOPS都是在某些条件下达成的,而且绝对不可能是QD1下。一样的,如果是内存,当前4KB的QD1要到2xxxMB/s不可能,大部分都在1000MB/s以下,因为内存的延迟就是那样,不管你再如何快,这是当前工艺的物理限制。我们日常操作会用到多少QD?这个是很多人会问的问题,我可以告诉你,平均不会超过4,大部分都在1和2之间。而厂商给出的数据大部分是QD32或者64的,不用到数据库服务器等请求多的应用,你这辈子用不到,你喜欢为你用不到的性能买单吗?起先,那些PCIE接口的SSD都是为企业级服务器设计的,这样堆出来的性能自然没错,而且用的是正确的地方,而如今,随着OCZ, Supertalent, Photofast 那些厂商推出PCIE接口的SSD,然后标称值都老高的数据来吸引用户,这些做法我感觉是非常”忽悠人“的,因为用户根本"用不到"这些性能,而会冲着这些高指标去买单。(我这里说的”用不到“不是指你不需要,而是你不可能用到这性能,因为要达到这个性能需要有很多条件,但是厂商会标up to XXXMB/s甚至XXXXMB/s来忽悠你,产品可以达到这个速度不代表在你的平台和应用上会有这个速度)。

ramdisk

OCZ Vertex 2 100GB

WD VelociRaptor 600GB

持续速度很不错,一到随机就悲剧了,大部分时间都浪费在寻道加潜伏期上去了(也就是说大部分时间磁头都没在要的数据上)
这个问题很难准确的回答,电子产品看RP相信大家都知道。如果我告诉你,SSD已经有30多年的历史了,你们可能会不相信,是的,1976年就有了。技术在进步,耐久度却越来越烂,为啥?因为越来越小,越来越精密,越来越便宜。一个产品从军用,工业用到企业用再沦为民用后,产品本身的定位已经发生质变,可以想象我们手上的SSD和军用产品的SSD是完全不同的。 军用产品不讲究绝对的高性能,而讲究高耐久/稳定/恶劣环境,价格也不是考虑范围。到了工业用的要的就剩下适合恶劣环境,企业用的只要高性能/稳定/耐久了,到了我们手里。。。啥都不要了,只要高性能和便宜就成,难道不是吗?MLC的出现不正是为了弥补SLC在价格上的弱势吗?要是人人用得起SLC,还要MLC做啥哪?容量不够我堆就成了。

从SSD的初衷来看,耐久度和寿命肯定是高过传统机械盘的,但是实际受到影响的地方太多了,可以想象,即使我有一块0.001%故障率的盘,但是我用100多个盘组成了个RAID 0阵列,那么这个故障率就会明显提高,甚至不如故障率0.1%的单盘了吧。SSD是由N个Die组成的,每个Die都有可能会坏,很多Die出厂内部就有坏块,所以SSD主控要有坏块管理机制。即使1个Die的故障率低,但是盘一多故障率也是很可观的。选择主控ECC能力强还是很必要的

时间: 2024-10-11 21:12:37

机械硬盘与SSD固态硬盘性能的深度的相关文章

SSD固态硬盘使用注意事项

SSD固态硬盘的结构和运行方式不同于传统硬盘,在购买以后强烈建议进行一些设置以达到最优的运行效能,延长SSD的使用寿命.以下第一部分是一些可以在网上找到的关于SSD硬盘相关的注意事项,已经介绍很多,这里不再赘述.大家需要了解详细内容请在网上查找相关内容.后面第二部分是我在结合了各方面的意见后,自己总结的一些注意事项,供大家参考. 第一部分: 需要在BIOS中打开AHCI需要进行4K对齐(分区起始偏移对齐,可被4096整除,分区按4K作为最小分配单元)最好不要分多个分区(SSD机制决定,延长使用寿

【转】如何使用分区助手完美迁移系统到SSD固态硬盘?

自从SSD固态硬盘出世以来,一直都被持续关注着,SSD的性能优势让无数用户起了将操作系统迁移到SSD的心思,直接后果就是让无数机械硬盘为止黯然退场,很多软件都可以做到系统迁移,然而,被完美迁移的系统却不是多数.如何完美迁移系统到SSD中呢?参见下文. 为什么要迁移系统盘? 大家都知道我们的默认系统盘是C盘,由于长期的使用,各种下载.安装.以及一些缓存累积,可能你的系统盘里的剩余空间会越来越小,这样也就导致了电脑运行速度越来越多慢.而你又不得不长期想尽各种办法去修护.杀毒.清理垃圾等等.要从根本突

精品软件 推荐 SSD固态硬盘潜能释放器 SSDRunner

SSD固态硬盘潜能释放器是一键全自动唤发固态硬盘的潜在效能.大幅加强固态硬盘效率,降低硬盘硬盘的读写次数,有效增加固态硬盘的使用寿命. SSD固态硬盘潜能释放器功能: 1.仅需进行一次固态硬盘的全面体检,之后任意文件定位不再读取固态硬盘.有效降低POS读写损耗. 2.一次性全自动高速梳理固态硬盘所有路径,自动将文件检索结果列出,供您一键进行搬移到机械硬盘. 3.独有的智能提醒,什么时侯需要进行优化,自动在产品内提醒. 4.多达十余种海量文件批量梳理,转存,搬移,自定义功能完全达到您的日常需要.

联想T430 安装msata接口的SSD固态硬盘

一.认识下mSATA SSD和 2.5英寸 SSD固态硬盘 目前固态硬盘有mSATA SSD和 2.5英寸 SSD固态硬盘. 1.mSATA SSD采用mSATA接口连接,体积较小,适合具有mSATA接口的笔记本电脑加装.现在新出的很多电脑都具有mSATA接口,有的是SATA2 3Gb/s,也有SATA3 6Gb/s的,T430的mSATA接口是SATA2 3Gb/s. 加装mSATA硬盘后,原硬盘和光驱可以同时使用,一般将mSATA固态硬盘作为系统盘,安装操作系统及应用软件,开机启动速度及软件

SSD固态硬盘的GC与Trim

操作系统:其实并没有删除数据 - "事实上,它只是在硬盘前的索引区里标记这块文件占用的区域为可覆盖的,所以下次数据将要再次写入的时候,可以覆盖写入这块被标记的区域.这也就是为啥那 些所谓的文件恢复软件能恢复的道理.(数据依然存在)." 固态硬盘:在固态硬盘闪存内,数据存储一般是以page(页)为最小单位存储的(典型的为4KB),而128个page组成了一个block(块),数据可以以 4KB大小的页来读取和写入,但却只能以512KB(128 page)的块大小来删除.当读取数据或者写入

Azure新的虚拟机规格(SSD固态硬盘)

Azure现在主要提供A系列.D系列.G系列虚拟机. D系列的虚拟机,相比A系列同编号的虚拟机,内容要大1倍. 新的虚拟机的CPU性能提升60%.更大的内容及本地使用了SSD固态硬盘.

笔记本光驱位换SSD固态硬盘之硬盘格式化

系列文章: ThinkPad E430c加装内存和SSD固态硬盘 笔记本光驱位换SSD固态硬盘之Ghost克隆原来的系统到SSD固态硬盘分区 概述 加装SSD固态硬盘后,假设须要使用GHOST将原来的系统克隆到新的SSD固态硬盘上,须要对硬盘进行分区和格式化: 有人会问:GHost 目标盘须要格式化吗? 假设是同样大小的硬盘.能够不经分区与格式化直接ghost: 假设两个分区大小不一样,最好先进行格式化,然后再Ghost.否则多出的分区可能会出现不可用的情况. 详细我也没试过,有兴趣的朋友能够亲

Linux下测试SSD固态硬盘写入速度

最近买了一个256GB的SSD固态硬盘,想测试一下写入速度,于是如下操作. 部分代码: 1 gettimeofday(&start, NULL); 2 int fd = open("test1.dat", O_RDWR|O_CREAT); 3 if (fd < 0){ 4 printf("open error!\n"); 5 return 0; 6 } 7 // lseek(fd, 0, SEEK_SET); 8 write(fd, pData, DA

笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘

系列文章: 笔记本电脑提速之加装内存条.SSD固态硬盘.光驱位换SSD固态硬盘 笔记本ThinkPad E430c加装内存和SSD固态硬盘 笔记本惠普CQ14-a003TX加装内存和SSD固态硬盘 笔记本光驱位换SSD固态硬盘之硬盘格式化 笔记本光驱位换SSD固态硬盘之Ghost克隆原来的系统到SSD固态硬盘分区 硬件准备 1.光驱位硬盘托架 2.SSD固态硬盘 3.内存条 操作步骤: 1.拆下电池 2.拧下后盖的两个固定螺丝 3.打开后盖 4.加装内存 内存安装方法: 将内存条斜45度插入内存