答案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 写入。