磁盘碎片整理能提升固态硬盘的速度吗?

随着NAND闪存越来越便宜,一块固态硬盘(SSD)已经快成为家用电脑的标准配置了。而硬盘作为电脑数据的载体,其读写速度和使用寿命都牵动着使用者的心。在机械硬盘(HDD)的领域,有磁盘碎片整理(Defragment)这一据说能提高硬盘性能的功能,那么,SSD需要磁盘碎片整理吗?

在此之前,我们先来看看HDD和SSD的结构等方面的区别。

HDD是一种机械结构的硬盘,影响性能的主要是马达转速、盘片密度、磁头数、缓存容量等各种因素,目前最强的HDD连续读取速度也没有超过200MB/s级别,4K随机性能更是完全不可与SSD相提并论。当一块空的HDD开始写入数据,它们将被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的。而随着硬盘在机器上服役的时长增加,日复一日地反复写入、读取或删除文件数据,磁盘中的空闲扇区会分散到整个磁盘中不连续的物理位置上,从而使文件不能保存在连续的扇区里。这样,再读写文件时就需要到不同的地方读取,增加了磁头的来回移动,降低了磁盘的访问速度。所谓磁盘碎片整理,就是通过Windows系统的自带磁盘优化功能或者专业的磁盘碎片整理软件对电脑硬盘在长期使用过程中产生的碎片和凌乱文件重新整理,让它们形成连续的排列,理论上可提升硬盘的整体性能。

而SSD的组成基本上为NAND闪存+主控+缓存+PCB+接口,没有机械部件,数据传输、读写都是电子信号,不存在马达转速这样的瓶颈因素,性能自然就上来了。SSD不仅连续读写速度比HDD快得多,在随机读写速度上,更是把HDD远远地抛在了车后,连尾灯都难看见。SSD不需要寻道时间,所以文件数据排列连续与否对读取速度并没有太大的提升,相反,用碎片整理的思路去对SSD内的数据进行这种没有收益的搬移会影响SSD的使用寿命。所以,对于SSD来说,磁盘碎片整理是不需要的。

但SSD还是需要进行一些优化操作的。在操作系统中,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入。而在删除文件时,Windows只会在此处做个标签,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标签这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。

这个流程对机械硬盘来说,是没毛病的,但对SSD来说就不对劲了。SSD的存储介质是闪存,闪存写入数据时并不像机械硬盘那样可以直接覆盖,而是需要先擦除原来的数据再把新的数据写进去,在读取、写入和擦除这三个SSD的基本读写操作中擦除这步耗时是最久的,SSD用久之后需要擦除的区块就会变多,性能自然也会有所下降。

那么,我们该怎么优化SSD呢?这一点,软、硬件厂商已经给出解决方案了,那就是Trim指令。当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘发出删除指令,而只使用Volume Bitmap来标记这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。

Trim的工作原理

在Windows 7之前版本的Windows系统中,它是区分不出SSD和HDD的,所以我们需要把对SSD的自动碎片整理功能关掉;而Win7时,微软已经把不要对SSD进行碎片整理这一指令输入系统中,所以它会自动帮你关闭对SSD的碎片整理功能;来到Win8、10及更新版本的时代,操作系统在识别到SSD后,在默认开启磁盘碎片整理的情况下,会把它和HDD一起放入到优化队列中,对HDD运行碎片整理,而SSD执行Trim。

Windows 10磁盘优化

一般,Windows 7 SP1后就默认开启Trim了,那么,我们该怎么验证系统是否开启了Trim呢?我们用管理员权限打开命令提示符,输入fsutil behavior query disabledeletenotify,回车。如果返回的数值是0,那么Trim已开启,返回数值1则相反。如果没有开启,那么在命令提示符窗口中输入:fsutil behavior set disabledelete nofify 0并按回车执行,接着重新启动电脑即可开启固态硬盘的Trim。值得一提的是,Trim并不能消灭者SSD的写放大,但是能部分减缓它,所以最好并保证SSD剩余空间>25%。而在Raid 0阵列中并不能支持Trim。

(0)

相关推荐