在微软开发Windows Vista的时候,固态硬盘还没有如此火热,所以并未得到相应的优化。Windows 7就不同了,微软从一开始就把固态硬盘放在了关键位置上,近日更是通过E7官方博客详细阐述了新系统的相应优化措施。
一、固态硬盘性能退化与Trim请求操作
闪存区块(Block)、页面(Page)和单元(Cell)必须首先擦除才能写入新的数据,所以新买的固态硬盘表现很好,但是使用时间长了就能感觉到性能有所下滑,此前Intel就试图通过升级固件予以解决。
微软表示,他们也观察到了这种现象,但并没有大家想象得那么严重,事实上除了专门进行基准测试,用户在日常操作中基本感觉不到不同。
当然了,厂商们仍然有义务最大化地维护高性能。硬件厂商一是在固态硬盘出厂前预先对其进行全面擦除(类似硬盘低级格式化),二是准备一块专门的空间来存放密集爆发性写入,企业级硬盘甚至会为此保留最多50%的空间,以便长期维持较高的持续写入速度。
微软还与固态硬盘厂商联合使用了一种“Trim”机制。在Windows 7里,如果固态硬盘报告支持ATA协议数据集管理(DSM)命令里的Trim属性,NTFS文件系统就会在用户删除文件的时候要求ATA驱动向固态硬盘发出新的Trim操作指令,告诉它相关页面可以安全擦除。固态硬盘得到这一指示后,就不会急于执行擦除操作,而是等到合适的机会,也就是再次有写入操作的时候,因为这时相关页面已经可以重新使用,就不需要再执行擦除操作了。
举个例子,假如一个128KB大小的区块内存放着一个128KB的文件,如果文件被删除并执行Trim操作,固态硬盘就可以避免把这个区块中的字节与对此区块的后续写入所需的其它字节相混合,这能大大减轻固态硬盘的“磨损”。
在Windows 7里,Trim请求不仅限于删除操作,也于分区和卷级别命令、文件系统命令、系统还原功能完全整合。
二、Windows 7优化与默认行为简述
在固态硬盘上,Windows 7会禁用磁盘碎片整理,因为固态硬盘的随机读取操作机制很好,整理文件碎片不会再起到什么帮助。
Windows 7还会在固态硬盘默认禁用SuperFetch、ReadyBoost,以及启动和程序预取,这些功能都是针对传统硬盘设计的。
Windows 7内置的分区创建工具也会考虑固态硬盘的特性。当然,把系统分区放在固态硬盘上最佳。
三、常见问题释疑
1、Windows 7会支持Trim么?
支持。参见上文。
2、在固态硬盘上会默认禁用碎片整理么?
会。Windows 7的碎片整理会排除固态硬盘分区,而且如果硬盘分区随机读取性能超过8MB/s,碎片整理也会无视它。
8MB/s这一指标是微软内部分析得出的,会在最终版的系统中加入。其实这个规定意义不大,因为固态硬盘普遍都在11-130MB/s,而测试的182块传统硬盘只有6块超过了2MB/s,其它全部在0.8-1.6MB/s。
3、在固态硬盘上会禁用SuperFetch么?
会,但不是绝对。
微软最初打算完全在固态硬盘上禁用SuperFetch,但在部分系统上碰到了大幅度的性能衰退,后来发现第一代固态硬盘的随机写入和擦除操作过于频繁,最终导致读取速度变得极慢,而开启了SuperFetch和其它预取技术后,性能明显回升。