固态硬盘的性能与很多因素有关,其中空间使用情况也会给固态硬盘的速度产生影响。一款优秀的固态硬盘应当能够在接近满盘使用的情况下保持性能不衰减。
以家用固态硬盘来说,80%空间使用率是一个比较典型的代表。在这种条件下固态硬盘主控需要管理的数据体量较大,垃圾回收、磨损均衡、缓存释放这些发生在固态硬盘内部的闪存活动都会制约固态硬盘的性能发挥。
在空盘条件下运行PCMark 8存储测试可以得到固态硬盘的最高性能,下图是东芝TR200 240G 3D闪存固态硬盘的PCMark 8存储测试成绩:
而80%满盘条件下展现的是家用常用容量的较高值,东芝TR200 240G没有发生掉速现象:
通过AS SSD Benchmark测试来看,东芝TR200在80%满盘下依旧保持了性能不变。不过或许会有朋友注意到发生在Acc.time中的变化:
看起来在80%满盘使用之后,东芝TR200的存取时间从0.033ms增长到了0.115ms。存取时间是以最小存取单位读写数据的延迟,在AS SSD Benchmark当中是以512字节进行测试的。
我们更换另外一个软件进行测试,也会有相似的结果。下面是完全空盘条件下AIDA64 Disk Benchmark平均读取延迟测试,64KB区块的平均读取延迟为0.02ms:
在达到80%占用率之后,平均读取延迟提高到0.1ms。
从空盘到80%满盘状态,TR200的读取延迟提升了5倍,似乎与早前的PCMark 8存储测试结果有所不符,问题出在哪里呢?这要从文件系统与固态硬盘闪存之间的沟通说起。
在文件系统与闪存之间,固态硬盘内包含有一个名为FTL的闪存转换层,负责将闪存的每一个存储单元解释为与传统机械硬盘相同的扇区,同时在文件系统请求执行闪存不能支持的覆盖写入时,利用固态硬盘内部的OP预留空间进行辗转腾挪:写入新数据-标注旧数据无效-更新映射表将逻辑地址指向新的物理地址。
正是由于FTL的存在,固态硬盘能够了解到哪些位置有数据存储,哪些位置是空白的。在主机请求读取的逻辑地址内容为空白时,固态硬盘就可以不执行实际的闪存读取操作,进而直接返回零,提升效率。这也就是为何空盘读取延迟只有满盘1/5的原因:其中没有包含闪存实际读取。
TR200满盘测试AS SSD Benchmark的读取延迟会增加,其实是所有固态硬盘都会出现的正常现象,只是多数情况下普通用户没有关注自己运行性能测试时固态硬盘的空间使用情况。对于专业存储评测来说,要准确测试固态硬盘的读取延迟就应该先把硬盘填满,不过多数评测者没有坚守这一原则。这才会造成一些不要的误解。