固态硬盘越用越慢的原因是什么
回首过去5到10年,还来有过其他像固态硬盘这样能够成百上千倍提升性能的电脑部件。如今固态硬盘的顺序读写速度是机械盘的数倍、随机读写速度是机械盘数百到数万倍,但依然有玩家抱怨在使用中遇到卡顿问题。
显然,我们日常看到的硬盘性能参数中忽略了一些信息,导致理论性能强悍、实际使用却可能卡壳的瓶颈出现。
在微软Windows硬件兼容性计划(WHCP)对硬盘的要求中,除了顺序读写带宽(MB/s)、随机读写IOPS之外,还有对延迟(Latency)的要求。微软要求最大响应延迟不应超过500毫秒。同时,在1个小时的使用时长之内,所有可觉察的延迟(响应时间>100毫秒)总和不超过20秒。
什么是延迟?为什么延迟会影响使用体验?举个例子,开车上班通勤,多个车道,类似于带宽,并且每小时能够通行的车辆总数具有一定的容量,这类似于IOPS。问题是,即使你知道这两个值,你也无法回答最重要的问题:上班需要多长时间?
延迟是完成通勤(数据读写)所需的时间,这个数值越低越好。到我们的比喻,如果你行驶在在没有拥堵的高速公路上,增加车道数量不会减少你的通勤时间。同样,如果高速公路没有拥堵,增加高速公路可以通行的汽车数量也不会对性能产生任何影响。
如果你需要在上午9点到办公室,知道平均通勤时间不会有多大帮助。您需要知道的是最糟糕的通勤时间。了解这个价值将确保您准时到达。评估存储系统的性能时,"保证最大延迟"是关键性指标,优秀的固态硬盘/闪存阵列应该在各种条件下努力保持始终如一的低延迟。
尽管我们电脑在日常使用中硬盘以轻度使用为主,但爆发性的读写需求如果无法得到满足,或者延迟忽高忽低,就难免会有可感知的卡顿出现。所以固态硬盘评测会加入满盘容量4K随机写入稳定态测试,这个测试使用IOMeter填充满全盘空间,然后使用4K QD32随机写入,对固态硬盘施加很重的负担。
使用Excel打开IOMeter生成的每秒记录文件,其中就有IO延迟区间统计。下图是东芝RC500 500GB的测试结果,所有随机写入操作的延迟都在1毫秒到5毫秒这个区间内,表现出色。
在路由器中经常能看到QoS服务质量这个名词,对于固态硬盘来说QoS优化也是一个复杂的系统工程,它在主控和固件层面上工作,确保合理的最大延迟,避免卡顿。
作为对照,下图中某个同类产品的延迟分布就比较分散,其中既然有低于200μs的出色表现,同时也有不少大于200毫秒,甚至是大于500毫秒的高延迟。如果这些IO出现在电脑系统盘日常使用过程当中,将表现为用户可以感知到的严重卡顿。
固件层面的内容我们普通消费者是难以掌握的,如果有条件的话,尽量选择带有DRAM缓存的固态硬盘,这是迈向减少卡顿的第一步。