Win7+SSD=Give You Wings,Windows7 Trim详解以及主流SSD使用初步指南来上过SSD阵列之后,想草草发个评测就了事。却在昨天晚上得到一次随意跑出的Crystal Disk Mark结果后,发现SSD速度快,并不是一件简单的事。鉴于国内几乎没有相关的资料可供查询,而到英文网站查询相关资料对于很多人来说又是个不小的困难,所以这篇帖子应该对大家理解SSD以及Windows7 Trim有所帮助。
对于SSD的,这里不多做解释,只是提一提比较有代表性的特点:
寻道时间=0,小文件和随机读写速度快,持续读写速度也超过机械硬盘。NAND寿命较长,无机械结构,更容易保存等等。
不过这里需要首先澄清几点:
1.选择一块大厂出品的SSD是必要的,技术实力不强,或是贴牌,甚至山寨的SSD,由于固件开发能力弱,或者根本没能力开发SSD固件,会直接导致SSD失去其应有的性能。(这一点在后面会有说明)
2.很多人认为SSD寿命令人担忧,但NAND闪存的读写寿命理论上是远远超过机械硬盘的。所以,造成SSD寿命短的原因,其实是固件或者主控的写策略。一块好的SSD,会通过合理的写策略避免在长时间数据读写时,重复擦写同一片区块。这样能保证SSD拥有其应有的使用寿命。
3.使用SSD,Windows7绝对是不二的选择,并且即使不组磁盘阵列,单块SSD的表现也能让人折服。
4.无缓存的SSD不建议使用。
=========================================================================
一. Windows7针对SSD的优化
由于SSD是新生实物,因此,只有最新的系统才能针对其特点作出优化,使其发挥最大性能。Windows7在识别到SSD后,会关闭碎片整理,SuperFetch等一系列在机械硬盘上的动作。但很多人把这些机制误认为是Trim。
由于SSD固件自身会在系统待机或者轻载时自动整理磁盘碎片,再加上SSD存储结构跟机械硬盘完全不同,因此Windows的磁盘整理不再适合SSD。至于SuperFetch,SSD寻道时间为0,所以也用不上了~~
二.什么是Trim
Trim又叫Disable Delete Notify。Trim启用的验证方法:用管理员权限打开,输入fsutil behavior QUERY DisableDeleteNotify
DisableDeleteNotify = 0 Trim启用
DisableDeleteNotify = 1 Trim未启用
原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。
这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。
而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。
以上就是Trim的原理以及真正作用。
三.为什么SSD在长时间使用后会出现性能下降
SSD在长期,或大量读写后,仍然会产生磁盘碎片。早期的SSD固件内并没有自动整理碎片机制,而Windows的磁盘整理对于SSD又并不适用,因此只能眼睁睁看着磁盘性能越来越差。
但造成性能下降的原因还不止这一个,即使是支持自动整理碎片以及Trim机制的SSD,也会出现这样的情况。
原因仍然跟上面的Trim原理密切相关。由于Volume Bitmap是快照,因此Windows必须清楚的知道,哪些区块中的数据是已经被删除掉了的。如果由于种种原因,Windows根本不知道磁盘的这些区块的情况,系统就只能按照对待机械硬盘的方式来操作SSD,只能向磁盘本身写标记,写入数据之前也会先擦除以前的数据,即使这里什么也没有。
四.Trim的启用是有前提的
有支持Trim的SSD,也使用了Windows7,却也不一定就能开启Trim。由于Trim是微软的东西,所以初步只支持Microsoft编写的标准驱动。如果是一块支持Trim的单盘,就必须使用微软的标准磁盘驱动器驱动。而如果是阵列,就一定会用到第三方驱动程序。但比较奇怪的是,在安装Intel最新的Matrix Storage驱动之后,Trim机制居然正常工作了。
不过其他Raid芯片运气就没那么好了,使用AMD芯片组,5i等方式组成的阵列,Trim都没能正常启用。
五.怎样让Trim+SSD发挥出最大性能
如果你只是购买一块支持Trim的SSD,再为它装上Windows7,也没有发挥出最大性能。原因很简单,因为新磁盘为空,Windows的Volume Bitmap根本没被建立。Windows只能按照对待机械硬盘的方式处理SSD。但有趣的事情发生了,你会发现,新的SSD得出的测试结果虽然不尽如人意,但在使用一段时间之后,速度竟然不降反升!
下面就是我的Vertex 60G*2 Raid0在使用前后的速度对比:
刚买来,装好系统之后的速度
使用一段时间后的速度
读取速度增加很明显,但写入速度却有所降低。
原因?通过一段时间的使用后,一部分区块经过了读写操作,Volume Bitmap中建立了相关快照,速度自然快很多,而写入速度变慢是由于硬盘长期处于工作状态,碎片整理功能没有运行。在注销并闲置一段时间后,速度继续提升:
那么怎样才能让SSD从一开始就处于最佳工作状态?
答案是人为向固态硬盘中写入大量数据,将SSD全部填满,然后删除所有填入的数据以及所有不需要的文件(比如临时文件等),当然,这个操作必须是在Windows7下面进行,并且Trim已经启用,在删除数据之后,再重启系统,闲置一段时间。这样一来,Windows7会立即建立整个磁盘的Volume Bitmap快照,SSD固件也自动整理碎片,全面提升速度:
SSD被填得一点不剩...........
然后删除,放几个小时之后,金子闪光了。
最快读取速度直接突破500M/s,比这块Vertex标称的230M/s*2还快不少,写入速度也直接上到200M以上。4k小文件读写速度也得到一定提升。SSD+Trim的真正威力到现在才被发挥出来~~~~
至此,Trim+SSD这一部分就先暂时告一段落。
下面准备收集主流SSD的各种使用技巧和资源,慢慢编辑吧,一时半会儿也弄不完........