为什么在硬盘/固态硬盘基准测试中,4K读取速度比写入速度慢?

分类: o365邮箱登录 时间: 2025-07-14 00:36:00 作者: admin 阅读: 1025
为什么在硬盘/固态硬盘基准测试中,4K读取速度比写入速度慢?

简而言之:这是因为固态硬盘(SSD)在写入完成之前就向你报告说已经完成了。但对于读取来说,它无法做同样的事情。

更详细的解释是写入缓存。

我们从QD1的情况开始。一旦SSD接收到数据并将其保存在驱动器上的缓存中,但尚未实际写入NAND闪存,它就会向操作系统报告写入已完成。这会产生很大的差异,因为将数据实际写入NAND闪存非常慢。对于读取来说,它实际上必须先从NAND闪存中读取数据,然后才能发送回来(除非它之前已经读取过并且仍然保存在缓存中,但这在随机读取时几乎不太可能发生)。

这种做法的缺点是,在突然断电的情况下,已写入SSD但尚未写入NAND闪存的数据可能会丢失。一些企业级SSD包括超级电容器,以便在突然断电时存储足够的电力,以完成将缓存中的数据写入NAND闪存。

硬盘也会出现相同的情况,因为它们也在进行写入缓存。只是它们的做法没有SSD那么激进。为什么SSD如此激进?要回答这个问题,我们需要考虑QD32的情况,这更加复杂和有趣。

你所说的随机读取通常比随机写入在 QD32 上更快的说法是不准确的。这主要取决于你看的是哪些具体的固态硬盘。

如果你看一下许多 SATA 固态硬盘的 4k QD1 随机读取,它们似乎都在 20-30 MB/s 的范围内表现。为什么呢?因为 4k QD1 随机读取主要涉及延迟而不是吞吐量。延迟来自三个部分:

1. SATA/AHCI 的接口延迟,涉及告诉驱动器该做什么并发送数据。

2. 控制器本身必须确定如何处理接收到的数据和指令。

3. 实际读取或写入数据到 NAND 芯片的时间。

无论是 1 还是 3,在很长一段时间里都没有太大变化,这就是为什么 1k QD1 随机读取也没有太大变化的原因。

固态硬盘从 SATA/AHCI 到 PCIe/NVMe 的最近转变大大降低了 1 的延迟,这就是为什么某些 M.2 和 PCIe 固态硬盘最近在这方面取得了巨大的改进。

SSD控制器可以通过并行读取或写入多个NAND芯片来大大减少延迟,从而掩盖3的大部分延迟。如果使用NCQ进行QD32 4k随机读取,SSD可以无序地处理读取请求,并确保尽可能并行地从多个NAND芯片中读取。

对于QD32 4k随机写入,SSD会执行一种称为写合并的操作。当大量小的写入请求到达时,SSD控制器会在本地缓存它们,并在累积了足够多的写入缓冲区后,将其分割成适当大小的块,并并行地将这些块写入多个NAND芯片,再次帮助掩盖NAND延迟。写合并的另一个优点是,现今大多数SSD的页面大小(最小可读取或写入的单位)都大于4k,将写入组合到达页面大小之前有助于避免大量写放大。正是为了实现这些功能,SSD在写入缓存方面非常积极主动。

相关文章

韩国最好的榨汁机品牌 韩国榨汁机哪个牌子好?韩国榨汁机的三个品牌
苹果手机怎么恢复微信聊天记录?5个方法!
100本西方经典文学名著丨第一篇古代文学
牛B鲤、酒曲自制玉米麦子窝料