SSD 驱动器是否会受益于非默认分配单元大小?

SSD 驱动器是否会受益于非默认分配单元大小?

在我们当前的设置中,格式化驱动器时建议的默认分配单元大小为 4096 字节。我了解较大和较小尺寸的利弊(性能提升与空间节省),但似乎固态驱动器的优势(寻道时间比硬盘低得多)可能会造成一种情况,即较小的分配大小不会造成不利影响。

如果事实如此,它至少可以部分帮助克服 SSD 的缺点(每 GB 价格高得多)。

有没有办法确定与寻道时间特别相关的较小分配大小的“成本”?或者是否有任何研究或文章建议根据这项新技术更改默认设置?

(假设程序文件、操作系统文件、数据、mp3、文本文件等的大小分布最平均。)

答案1

如果你正在寻找一篇好文章,我推荐

SSD 的使用方法和原因作者:罗伯特·哈洛克

我链接到第 2 页,其中包含讨论聚类和块大小的部分。

[...] 解决这个问题的方法是增加集群规模,这样做有几个优点:

  • 降低文件系统的复杂性;更少的集群意味着更少的组织。
  • 随着簇大小与块大小接近,读写速度增加。
  • 如果系统主要由大文件组成,则减少松弛空间。

然而,增加簇大小并不是固态硬盘的灵丹妙药,因为大多数人拥有的信息都是混合的。游戏通常包含大量小文件,操作系统几乎是小文件的总和;然而,电影、音乐、档案和 MMO 是扩大簇大小的完美候选对象。比小簇的锚定更令人沮丧的是,在现代 Windows 操作系统下获得更大簇的过程非常复杂。这样的壮举需要有预谋地使用 Acronis Disk Director 等程序,它可以在安装 Windows 之前增加簇大小。也可以调整现有簇的大小,但这种过程的成功程度令人震惊地参差不齐。

答案2

我绝对同意霍洛克的观点(“SSD 的使用方法和原因“) 当集群大小接近块大小时,性能会有所提高。在这种情况下,每个集群请求的块读取次数和开销都会降到最低。

簇大小小于块大小不一定会对性能造成巨大影响,但通常会带来更多开销(因为 SSD 将读取块并删除不在请求簇中的块部分。如果驱动器碎片化且同一块上的相邻簇不是同一文件的一部分,则情况会更糟。)

一般而言,将簇大小增加到(但不要超过)SSD 的块大小是有益的。当然,损失是您将开始失去空间,并且正如您所提到的,SSD 的每 GB 成本远高于磁性介质。

根据您的资金量,您可以:

  1. 将簇大小设置为驱动器的块大小(正如 Hollock 提到的,这可能有点繁琐),并在牺牲空间并花费更多金钱的同时获得性能优势

或者

  1. 将簇大小设置为驱动器上的平均文件大小(或略高一点,使其成为块大小的一个因素),以提高驱动器容量,同时(可能)牺牲一些性能。如果簇大小明显小于块大小,请务必对驱动器进行碎片整理。

希望这有帮助:)

答案3

这是一则轶事,但它表明除了默认的 4k 之外,使用其他集群大小没有任何实际优势. 您可能有更多要处理的 I/O 请求但从总体来看,这只是微不足道的。

答案4

您的两个答案(以及 Hallock 的答案)似乎都与“写入放大减少”的目的相矛盾,即减少不必要的 NAND 磨损。增加簇大小意味着浪费更多的磁盘写入。您说对 SSD 进行碎片整理?这是使用 SSD 的致命错误之一。

相关内容