本帖最后由 neeyuese 于 2010-8-14 22:55 编辑
很多朋友喜欢用HDtune做硬盘测试软件,不得不承认这个软件太普遍太大众太易用,但是理解测试数据的含义我看没多少人,这里我就详细说说HDtune测试和SSD之间的关系,解惑很多朋友对SSD速度用HDtune测试后表示“看不懂”的纠结。
自用测试机器:
I7 920 D0
EX58-UD4P (ICH10R)
6G DDR3 2000
Win7 64U & WINXP Pro 32
RST 9.6 AHCI
SSD: barefoot 主控 128G 三星颗粒50nm 16颗8G的HCG-08U1M Gskill Falcon 128G 1916固件
SandForce 主控 128G Intel颗粒 34nm 16颗8G的29F64G08CAMDB Vertex LE 100G 1.11固件
正式开始,我们先来看看barefoot的状况: 我们知道barefoot 1916之后的固件是开始完整支持Trim和GC的。
我们先来看看barefoot不挂主盘,全盘无分区无数据(NAND无数据,我事先用sanitary_erase清空过,等于出厂状态)测试。
这个数据不错吧?恩,我说这个数据是在ICH10R南桥上比较普遍的barefoot主控方案(主控和外置缓存一起)跑HDtune全默认设置(64K测试块)的峰值速度,也就是最高成绩。(OCZ的Turbo不算,那个缓存是OC过的)。
问题就在这里,这个速度我们平时是跑不出来的,我指的是里面有数据的话,因为这个只是主控能力,而非实际NAND能力。那么我这块SSD的实际NAND能力是多少哪?Trim和GC是如何起作用的?请看下面的图。
barefoot跑CDM后瞬间跑HDtune的成绩。
barefoot跑CDM后瞬间跑完HDtune后再跑次的成绩。
看出啥东西了?瞬间跑的图一开始有点跌的成绩和测试当中的2个瞬间下降。这个说明啥问题?
我来解释下: 那个一开始的速度在200MB附近,然后下面的容量范围显示为最初的4GB左右。这个就是之前测试CDM 4000MB写入测试后带来的速度下降,(瞬间测试HDtune,那个4000MB的CDM文件还没来得及完全删除),然后在测试中间,SSD固件进行了2次主动Trim,瞬间吃掉了整个主控的能力,(CDM文件被删除了)造成瞬间的2个深沟,才9MB多。。。 第二次再跑HDtune的时候由于前面2次Trim后带来了颗粒上的数据被标记无效并被直接垃圾回收掉,所以整个测试成绩又变成了出厂性能。
那么接下来我们再看:
我把Falcon分区,NTFS默认,然后在里面装入7G多的图片,再跑HDtune测试,发现了啥?在一开始的HDtune测试速度低下,容量正好是7G范围,那么这个就是这些图片占的空间速度,原来这个才是NAND的真实速度啊。
然后我手动把这7G图片瞬间删除:
删除后瞬间测试Hdtune,看到了啥?一开始7G多速度和前面测试一样成绩,但是之后多了很多的深沟,那么这个和前次CDM的一样,删除文件后,SSD主动做了Trim和GC操作,占满了主控的带宽,造成速度瞬间低下,因为Trim的指令比较特殊,一般来说单次只能Trim 2G的文件,那么这里7G文件就Trim了4次,所以这里有4个深沟。
然后跟着再跑了次HDtune测试,平滑了吧,速度返回出厂了吧,因为SSD上没文件了,而且Trim和垃圾回收过了。
看完barefoot后,我们再来看下SandForce的主控吧。SandForce主控官方说支持Trim,但是要Intel南桥RST驱动才能完整支持。MS驱动的话一次只能Trim 2G。
由于测试条件限制,下面的测试我是挂在WIN XP下测试的,SandForce挂从盘,安装RST 9.6驱动,但是因为系统不支持Trim,所以这里没有任何Trim的效果。
先来4张SandForce出厂状态测试图,没有分区,没有数据,NAND颗粒为空。(每次测试完我都用SFTOOLBOX执行Erase,效果相当于DOS下的HDD Erase)。
很劲爆的主控能力啊,比barefoot强的不是一点半点哈。但是我知道这只是主控能力,不是NAND速度。
那么装有数据的SandForce速度是如何哪?NAND真实速度。为了达到这一目的,我在XP下直接跑了次全盘Write测试,然后没执行Erase命令,直接测试。
哇哦,差了好多哦,特别是IOPS,这是咋回事?盘里依旧没数据,但是成绩下来了一截啊,这是因为XP下Trim不支持的关系,由于全盘写入后,映射表已经生成,接下来的速度就是真正NAND的速度了。(日常用的速度)。
为了再次证实,我又用Erase清空了整个盘,然后跑了20%的写入停止再跑读取。看图。
果然测试过写入的地方读取速度低.这就是NAND速度了。
总结:以上这些测试说明了啥?
空盘用HDtune测试SSD数据是没有任何意义的,你测的是主控能力,不是NAND速度。
空盘: HDD测试命令 -》 外部总线 -》 SSD主控 -》 SSD缓存/外部缓存取映射表 -》 映射表无内容 -》 返回测试数据
有数据的盘: HDD测试命令 -》 外部总线 -》 SSD主控 -》 SSD缓存/外部缓存取映射表 -》映射表映射到对应数据的NAND地址 -》 进入NAND -》 返回测试数据
还不相信? 那我就再给你看个东西吧。
MFT with Falcon 128G
看了这个图你有啥想法?该不会认为这个是SSD速度吧,就算主控有这能力外部总线也不允许啊。这个是内存速度,用MFT软件分区后就这速度。
这是为啥?有那么恐怖的成绩:
HDD测试命令 -》 外部总线 -》 SSD主控 -》 SSD缓存/外部缓存取映射表 -》映射表映射到对应数据的内存地址 -》 进入内存 -》 返回测试数据
对,这个是物理内存速度,MFT是物理内存映射软件,把随机的写入映射进物理内存里转换为持续写入,是在系统级驱动底层加入了一层物理内存FTL映射层。所以我习惯叫HDtune测出的速度为当前目标速度,而不叫实际速度,因为就算你的速度跑出来是8000~9000MB,实际数据处理还是要经过外部总线和主控处理再写回NAND闪存,那么最终带来的提升是啥?是IOPS和随机写入,可以看下图CDM成绩。
受到了外部总线,主控,NAND的限制,前面映射进内存处理的数据回来后的速度是这样的也是可以想明白的吧,这类必须分区格式化才能测试的软件跑的速度才是实际速度。{:4_158:} |