在我们当前的设置中,格式化驱动器时建议的默认分配单元大小为 4096 字节。我了解较大和较小尺寸的利弊(性能提升与空间节省),但似乎固态驱动器的优势(寻道时间比硬盘低得多)可能会造成一种情况,即较小的分配大小不会造成不利影响。
如果事实如此,它至少可以部分帮助克服 SSD 的缺点(每 GB 价格高得多)。
有没有办法确定与寻道时间特别相关的较小分配大小的“成本”?或者是否有任何研究或文章建议根据这项新技术更改默认设置?
(假设程序文件、操作系统文件、数据、mp3、文本文件等的大小分布最平均。)
答案1
如果你正在寻找一篇好文章,我推荐
SSD 的使用方法和原因作者:罗伯特·哈洛克
我链接到第 2 页,其中包含讨论聚类和块大小的部分。
[...] 解决这个问题的方法是增加集群规模,这样做有几个优点:
- 降低文件系统的复杂性;更少的集群意味着更少的组织。
- 随着簇大小与块大小接近,读写速度增加。
- 如果系统主要由大文件组成,则减少松弛空间。
然而,增加簇大小并不是固态硬盘的灵丹妙药,因为大多数人拥有的信息都是混合的。游戏通常包含大量小文件,操作系统几乎是小文件的总和;然而,电影、音乐、档案和 MMO 是扩大簇大小的完美候选对象。比小簇的锚定更令人沮丧的是,在现代 Windows 操作系统下获得更大簇的过程非常复杂。这样的壮举需要有预谋地使用 Acronis Disk Director 等程序,它可以在安装 Windows 之前增加簇大小。也可以调整现有簇的大小,但这种过程的成功程度令人震惊地参差不齐。
答案2
我绝对同意霍洛克的观点(“SSD 的使用方法和原因“) 当集群大小接近块大小时,性能会有所提高。在这种情况下,每个集群请求的块读取次数和开销都会降到最低。
簇大小小于块大小不一定会对性能造成巨大影响,但通常会带来更多开销(因为 SSD 将读取块并删除不在请求簇中的块部分。如果驱动器碎片化且同一块上的相邻簇不是同一文件的一部分,则情况会更糟。)
一般而言,将簇大小增加到(但不要超过)SSD 的块大小是有益的。当然,损失是您将开始失去空间,并且正如您所提到的,SSD 的每 GB 成本远高于磁性介质。
根据您的资金量,您可以:
- 将簇大小设置为驱动器的块大小(正如 Hollock 提到的,这可能有点繁琐),并在牺牲空间并花费更多金钱的同时获得性能优势
或者
- 将簇大小设置为驱动器上的平均文件大小(或略高一点,使其成为块大小的一个因素),以提高驱动器容量,同时(可能)牺牲一些性能。如果簇大小明显小于块大小,请务必对驱动器进行碎片整理。
希望这有帮助:)
答案3
这是一则轶事,但它表明除了默认的 4k 之外,使用其他集群大小没有任何实际优势. 您可能有更多要处理的 I/O 请求但从总体来看,这只是微不足道的。
答案4
您的两个答案(以及 Hallock 的答案)似乎都与“写入放大减少”的目的相矛盾,即减少不必要的 NAND 磨损。增加簇大小意味着浪费更多的磁盘写入。您说对 SSD 进行碎片整理?这是使用 SSD 的致命错误之一。