SSD 页面大小 > 文件系统块大小是否会增加 SSD 写入放大?

SSD 页面大小 > 文件系统块大小是否会增加 SSD 写入放大?

在阅读了有关 SSD 技术的知识后,我似乎无法回答一个问题。

根据Anandtech 评论称,目前大多数 SSD 使用的页面大小至少为 8KB。据我所知,这意味着一次可以向 SSD 的 NAND 写入不少于 8KB 的数据。显然,这帮助用于随机写入以及其他内容。

但是,许多当前文件系统使用 4KB 块大小。这是否意味着,对于单个 4K 写入,由于写入了整个 8KB 页面,SSD 写入放大至少为 2?随机 4K 写入又如何?

答案1

我不确定,但一直在研究同样的问题。我相信它会产生影响,但也取决于磁盘报告的物理和逻辑块大小。如果是这样,它会影响性能和耐用性。

文件系统块大小是文件系统的最小可寻址单位。文件系统请求被传递给设备驱动程序以从磁盘获取数据。设备驱动程序将根据磁盘的逻辑/物理块大小转换为设备块请求。在 Linux 上,您可以看到例如/sys/block/sda/queue/logical_block_size/sys/block/sda/queue/physical_block_size

如果设备块大小低于设备的页面大小,那么无论请求一开始有多大,请求都会被进一步细分。无论如何,这似乎不是最佳行为,应该首先修复 - 我认为在具有 4/8KiB 页面的现代 SSD 上看到 512B 并不罕见。参见更改三星 840 SSD 的扇区大小

如果设备块大小与页面大小相同,比如说 8KiB,那么文件系统的两个 4KiB 请求很可能会导致不必要的第二个请求,尤其是在写入的情况下,这会非常糟糕。

我不清楚的是,控制器或操作系统缓存在多大程度上减轻了这两种影响。jon 的回答没有提供太多细节或证据。听起来很可能读取会被缓存,因为这无论如何都是无风险的性能和耐用性优化。写入缓存通常也为 SSD 启用,但不是必需的。然后它有点取决于缓存策略/刷新间隔。在 Windows 上,写入缓存选项似乎存在一些混淆(对“写入缓存缓冲区刷新”是什么意思并没有真正解释两种设置之间的区别,其他文章也将它们混淆了)。

答案2

不,SSD 只会进行 2 次 4K 写入并将它们放在一起以形成 8K 写入。

相关内容