在用CrystalDiskMark测试固态硬盘时,我们常会看到Q(Queue Depth)和T(Thread)两种参数,它们分别代表了队列深度和线程数量。二者的不同组合之下会有意想不到的结果!

固态硬盘阵列性能(队列深度与线程)(1)

CrystalDiskMark默认测试了8线程、每线程8队列深度以及单线程32队列深度两种模式,如果把后者改成单线程64队列深度,8x8的结果会等同于1x64吗?

固态硬盘阵列性能(队列深度与线程)(2)

让我们通过实践来求证。首先是SATA固态硬盘,由于AHCI协议最高支持到32队列深度,所以两种设定之下的成绩基本一样,都受到了SATA接口的能力限制。

固态硬盘阵列性能(队列深度与线程)(3)

接下来测试的对象变成M.2接口NVMe协议的东芝RC100。通过对比可以明显看到,4K Q8T8的成绩明显好过4K Q64T1,也就是说如果将64队列深度平均分配到8个线程里去测试,RC100的表现会得到提升!

固态硬盘阵列性能(队列深度与线程)(4)

在提到NVMe固态硬盘时我们第一时间联想到的是带宽大、IOPS高:

固态硬盘阵列性能(队列深度与线程)(5)

SATA固态硬盘中10万IOPS几乎就是上限,而对于NVMe固态硬盘来说轻轻松松就能突破它。当然IOPS也并非只要数字大就足够好,我们同样要看到家用电脑只服务用户一人,对于IOPS的需求达不到服务器的水平。

固态硬盘阵列性能(队列深度与线程)(6)

今天的测试其实更能说明一个问题:NVMe对多核心CPU有优化,而SATA固态硬盘就像活在单核时代。

固态硬盘阵列性能(队列深度与线程)(7)

随着AMD锐龙的问世,8核心处理器已经不像过去那样昂贵,而相应的NVMe固态硬盘的地位也将同步得到提高。

固态硬盘阵列性能(队列深度与线程)(8)

或许你会觉得NVMe固态硬盘的顺序读写带宽和随机读写IOPS都是用不到的,但针对CPU的多核心优化无疑能带来更低的延迟和更快的响应速度,这才是NVMe固态硬盘的价值。

固态硬盘阵列性能(队列深度与线程)(9)

,