mgu*_*utt 13 ssd hard-drive benchmarking advanced-format
有多种基准测试工具可用于测试 PC 驱动器的速度。
以下是 SATA SSD 的基准示例:
m.2 固态硬盘:
硬盘:
在每种情况下,“随机读取 4KB Q1”都比写入慢,并且在大多数情况下,它与“QD32”相反。
在一些论坛上,人们说这是关于 SSD 芯片结构的限制,但像往常一样,硬盘驱动器显示相同的行为,这似乎是另一个原因?!
Mr *_*pha 13
TL;DR:这是因为 SSD 对你撒谎,说写入之前已经完成。对于读取,它无法逃脱同样的事情。
答案的较长版本是写缓存。
让我们从 QD1 案例开始。一旦 SSD 收到数据并将其保存在驱动器本地的缓存中,但在实际将其写入 NAND 之前,SSD 将向操作系统报告写入已完成。这有很大的不同,因为实际上将数据写入 NAND 非常慢。对于读取,它实际上必须先从 NAND 读取数据,然后才能将其发回(除非它更早读取并仍将其保存在缓存中,但这对于随机读取而言是不太可能的)。
这样做的缺点是,面对突然断电,写入 SSD 但尚未写入 NAND 的数据可能会丢失。一些企业级 SSD 包括一个超级电容器,可以存储足够的电量,以便在突然断电时将缓存中的数据写入 NAND。
对于硬盘驱动器,您会看到同样的事情,因为它们也在进行写入缓存。他们只是没有那么积极。为什么SSD如此激进?为了回答这个问题,我们需要考虑 QD32 的情况,它更复杂也更有趣。
你所说的随机读取通常比 QD32 的随机写入快是不正确的。这在很大程度上取决于您查看的特定 SSD。
如果您查看许多 SATA SSD 上的 4k QD1 随机读取,它们似乎都在 20-30 MB/s 范围内执行。这是为什么?这是因为 4k QD1 随机读取主要是关于延迟而不是吞吐量。延迟来自三个部分:
1. 或 3. 在很长一段时间内都没有太大变化,这就是为什么 1k QD1 随机读取也没有太大变化的原因。
最近 SSD 从 SATA/AHCI 到 PCIe/NVMe 的转变大大降低了 1. 的延迟,这就是为什么最近某些 m.2 和 PCIe SSD 在这方面表现出很大的改进。
SSD 控制器可以做的一件事对延迟有很大帮助,就是并行读取或写入多个 NAND 芯片,这样可以掩盖 3 的大部分延迟。如果您使用 NCQ 进行 QD32 4k 随机读取,则 SSD 可以为读取提供服务请求乱序,并确保它从尽可能多的 NAND 芯片中并行读取。
对于 QD32 4k 随机写入,SSD 会执行称为写入组合的操作。当大量小的写入请求进入 SSD 控制器时,它们会在本地缓存,并且当已经建立了足够大的写入缓冲区时,控制器会将其拆分为大小合适的块并将这些块并行写入多个 NAND 芯片,再次帮助掩盖NAND 延迟。写入组合的另一个优点是现在大多数 SSD 的页面大小(可以读取或写入的最小量)大于 4k,并且组合写入直到达到页面大小有助于避免大量写入放大。正是为了做这些事情,SSD 才在写缓存方面如此激进。
归档时间: |
|
查看次数: |
18311 次 |
最近记录: |