论坛里关于ARC100的一个帖子里有人多次提到对手动Trim的疑惑,手动Trim会“伤”固态吗?手动Trim一次消耗一个PE?手动Trim一次会产生多大写入?好吧这些问题的答案虽然我心里有数,但无图无真相,服人也要靠道理。测一下看不就知道了?
测试环境:Windows 10 Pro 1607,默认storahci驱动,固态硬盘是影驰的铁甲战将240,固件版本SAFM12.2。影驰的SSD魔盘工具箱可以查到这块铁甲战将的平均擦除、最大擦除以及Flash写入量(实际应为主机写入量)三个参数。
使用Process Monitor监视铁甲战将240上的所有磁盘活动,先来试试Windows 10自带的“优化驱动器”功能,对于机械硬盘来说他执行的是碎片整理,对于固态硬盘则是手动Trim空白空间。所有被Trim的区间都将被认为是数据已经无效的,所以手动Trim的范围永远是固态硬盘内尚未使用(没有文件占用)的空间。我测试的影驰铁甲战将240当前是空盘状态,所以手动Trim的会是全盘空间。
点下优化按钮后,Process Monitor瞬间出现大量磁盘活动记录。一条一条来分析,Windows 10优化驱动器功能执行的第一步操作是先获得Volume Bitmap,了解文件系统中哪些位置没有文件记录,接下来的优化(手动Trim)就将针对这些位置进行。
第二步所需的临时文件,0数据内容,但预分配1GB空间。
第三步,移动文件,这样在从一个位置移走(删除)的时候就会发送Trim指令给SSD主控。Windows 10自带的手动Trim就是这样是以1GB为单位执行Trim的。
接下来再看另外一个手动Trim方式:ForceTrim工具软件
同样使用Process Monitor软件监控铁甲战将240上的磁盘活动。
第一步,ForceTrim先查了下盘内还有多少剩余空间
第二步,ForceTrim先创建一个2GB的文件,然后跳转到相对于文件头大约2GB偏移量的位置,写入一个字节,再关闭文件。由于不是微软自家软件,系统自带的Defender这时候会跳出来检查这个新生成的文件,其实除了写入的那1个字节之外,整个文件都是空的。ForceTrim会不停的创建2GB文件,写入1字节,直至满盘。
第三步,ForceTrim将这些几乎完全是空的文件全部删除,这样磁盘控制器驱动将会发送Trim指令给SSD。
最后再试试Intel SSD Toolbox(以下简称ITB),这个工具箱原本只能用于Intel家的SSD,不过浴大有过2.0版本的破解,我装了一个试试,结果能执行Trim,但是返回结果是Fail,具体还是先看Proces Monitor的记录吧:
第一步,ITB也是先查剩余空间
第二步,ITB的做法比较有意思,它生成了两种不同容量的文件来“占地盘”,一种是3GB大小,另外一种只有1MB大小。从完成速度来看,这些文件也是空文件,只圈地不建楼,几乎没写入。
第三步,ITB把这些占地盘的文件删除,触发Trim传递给SSD
总结:
手动Trim工具是通过生成不含数据的稀疏文件然后再删除,从而发送Trim指令给SSD主控,虽然文件占据了很大的体积,但实际产生的写入量很小。SSD主控收到Trim指令后第一件要做的事情不是直接擦除Block,而是要先根据FTL表情况了解哪些Block原本FTL里有数据记录的(然后在合适的时机下执行擦除),哪些Block里原本就没有数据(也就不必再擦除了)。
空白盘或是Trim正常工作中的固态硬盘,手动Trim后应该不会产生闪存磨损,主机写入量基本也不会增加(写入的是0数据的稀疏文件)。空盘状态下我以2分钟为间隔对影驰铁甲战将240执行了5次优化驱动器(手动Trim)操作,影驰SSD魔盘工具箱检测到的闪存平均擦除与最大擦除计数均为发生任何改变。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|