多个(但不是最近)消息表明,应保留约7%的SSD空间以减少驱动器磨损。到目前为止仍然有效还是情况有所改变?
多个(但不是最近)消息表明,应保留约7%的SSD空间以减少驱动器磨损。到目前为止仍然有效还是情况有所改变?
Answers:
Windows通常会使用TRIM。这意味着只要文件系统上有X%的可用空间,驱动器就会将X%视为未分配。[*]不需要过度配置。
例外:从历史上看,在TRIM :(之后,具有Sandforce控制器/固件的SSD无法恢复全部性能。
完整驱动器上的性能损失可能非常严重,比其他一些驱动器更严重。这将与高写入放大率相关联,因此会增加磨损。资料来源:Anandtech评论。
因此,仅当且仅当
在Linux上启用TRIM并不是很困难,而且您不太可能会注意到任何问题。
幸运的是,几个最受欢迎的品牌都拥有自己的控制器。Sandforce控制器不再像以前那样流行。Sandforce问题使我对该特定的“智能”控制器设计表示怀疑,该设计在当时非常激进。向Sandforce致歉,但我没有有关受影响的确切控制器模型的参考。
[*]文件系统也希望拥有足够的可用空间以减少碎片。所以TRIM很棒,因为您不必将两个安全裕量加在一起,所以相同的可用空间对它们两者都有帮助:)。该驱动器可以利用未分配的空间来提高性能,并避免您所说的高磨损。
现代SSD控制器足够智能,因此日常使用通常不需要过度配置。但是,仍然存在一些情况,主要是在数据中心环境中,建议过度配置。要了解为什么过度配置可能有用,有必要了解SSD的工作原理。
SSD使用一种称为NAND闪存的内存。与硬盘驱动器不同,包含数据的NAND单元不能直接覆盖。驱动器需要先擦除现有数据,然后才能写入新数据。此外,尽管SSD在通常大小为4 KB至16 KB的页面中写入数据,但它们只能擦除称为块的大页面组中的数据,在现代SSD中,通常为几百KB到几MB。
NAND还具有有限的写入耐力。为了避免为了擦除块而不必要地重写数据,并确保没有块收到不成比例的写入,驱动器尝试将写入(尤其是小的随机写入)散布到不同的块。如果写操作替换了旧数据,则将旧页面标记为无效。将块中的所有页面标记为无效后,驱动器可以自由擦除它,而不必重写有效数据。
如果驱动器剩余空间很少或没有剩余空间,它将无法分散写入。取而代之的是,在将写入发送到驱动器时,驱动器将需要立即擦除这些块,并将这些块中的任何有效数据重写为其他块。这导致向NAND写入的数据多于向驱动器发送的数据,这种现象称为写入放大。写放大在随机写密集型工作负载(例如在线事务处理(OLTP))中尤其明显,并且必须保持最小,因为这会导致性能和耐用性降低。
为了减少写放大,大多数现代系统都支持称为TRIM的命令,该命令告诉驱动器哪些块不再包含有效数据,因此可以将其擦除。这是必要的,因为否则驱动器将需要假设操作系统逻辑删除的数据仍然有效,这会妨碍驱动器维护足够的可用空间。
但是,有时无法进行TRIM,例如,当驱动器位于外部机柜中(大多数机柜不支持TRIM)时,或者当驱动器与较旧的操作系统一起使用时。此外,在高度密集的随机写入工作负载下,写入将散布在基础NAND的较大区域上,这意味着即使驱动器几乎未满,也会发生强制数据重写和伴随的写入放大。
最早的SSD的成熟固件要少得多,它往往会比必要时更频繁地重写数据。早期的Indilinx和JMicron控制器(JMF602因口吃和极差的随机写入性能而臭名昭著)在密集的随机写入工作负载下有时会发生极高的写入放大,有时甚至超过100倍。(想象一下,当您尝试写入1 MB时,将超过100 MB的数据写入NAND!)。新型控制器具有更高的处理能力,改进的闪存管理算法和TRIM支持,能够更好地处理这些情况,尽管繁重的随机写入工作量仍会导致现代SSD中的写入放大超过10倍。
过度配置可为驱动器提供更大的可用空间区域,以处理随机写入并避免强制重写数据。所有SSD至少在一定程度上被超额配置;有些使用GB和GiB之间的差异来提供大约7%的备用空间供驱动器使用,而另一些使用更多的预留空间来优化特定应用程序的性能。例如,用于大量写OLTP或数据库工作负载的企业SSD可能具有512 GiB的物理NAND,但广告容量为400 GB,而不是具有相似NAND数量的普通消费者SSD的480至512 GB。
如果您的工作量特别苛刻,或者您在不支持TRIM的环境中使用驱动器,则可以通过对驱动器进行分区来手动超额配置空间,以使一些空间未被使用。例如,您可以将512 GB SSD分区为400 GB,并保留剩余空间未分配,驱动器会将未分配的空间用作备用空间。但是请注意,如果此未分配空间已被写入,则必须对其进行修剪;否则,它将没有任何好处,因为驱动器将看到该空间已被占用。(分区实用程序应该足够聪明才能执行此操作,但是我不确定100%;请参阅“ Windows是否修剪SSD上的未分区(未格式化)空间?”)
在支持TRIM的典型消费环境中,SSD的容量不足70-80%,并且不会因随机写入而连续受到猛击,因此写入放大通常不是问题,并且通常不需要过度配置。
最终,即使具有高写入放大率,大多数消费者也不会在大多数SSD预期的使用寿命内将几乎足够的数据写入磁盘以耗尽NAND,因此这不会失去睡眠。
固态硬盘驱动器型号之间的额外空间大小差异很大,但总的来说还是如此。