修复SSD性能下降的软件

DrS*_*ker 4 filesystems ssd

由于需要读取数据然后按块写入的方式,当前一代 SSD 的写入速度会随着时间的推移而降低(对于随机写入)。各种制造商都有修复程序来解决这个问题(例如在磁盘空闲时进行“垃圾收集”),但是除了擦除整个驱动器并重新开始之外,是否有任何软件解决方案来修复当前的 SSD 文件系统以恢复性能?

要么是在后台运行的东西,要么是一个可以在夜间运行以完成工作的“修复”工具;我想不出有任何理由说明此类工具不存在,但我找不到任何理由。

rad*_*ius 10

不可能有像非 SSD 硬盘的碎片整理软件这样的通用软件。

原因是在非 SSD 硬盘上,数据物理存储在已知位置。通过知道数据的LBA地址,碎片整理工具现在可以将数据物理地存储在硬盘驱动器上,并且可以将其移动到所需的位置。(这几乎是真的,但并非在所有情况下)

在 SSD 上,数据也存储在 LBA 地址(即 ATA/SATA 的工作方式)。但是,虽然传统硬盘驱动器(在大多数情况下)会在磁盘的开头存储 LBA 地址 1,然后是地址 2、3、4、...、N;SSD 不会线性存储地址,因为如果您在地址 1 写入,然后在地址 2 写入线性存储会非常慢,因为 SSD 将不得不重写存储在地址 1 的数据(这意味着读取它,将其存储在缓存中) ,擦除地址1到N(一个ssd每次写数据都需要写一整块N地址)),写地址1&2。慢)。这就是为什么 SSD 将存储地址 2 与地址 1“远离”(在内存空间中)的原因。这使得写入速度更快,但当所有块都被使用时会使磁盘变慢。

因此,工具无法知道数据如何存储在 SSD 上,也无法决定如何执行诸如“碎片整理”之类的操作。唯一的方法是在硬盘控制器内部运行一个程序,使用一个工具可以让 SSD 告诉他数据是如何存储的,然后告诉他如何移动(使用内部内存地址而不是 LBA 地址)(没有标准的 ATA 命令可以做到这一点,这是否意味着每个 SSD 供应商有 1 个工具。我什至不知道是否可以通过 ATA 协议使用这样的专有命令。(WIPER 可能是这样的工具)) 或使用著名的 TRIM 命令。

一段时间后,你得到了 N 个地址的所有块,只使用了几个地址(因为你删除了东西等),它开始变慢,因为每次写入数据时,都必须读取、擦除、写入一个块。这就是为什么您需要 TRIM 来获取大多数充满数据的块和新的空块的原因。

PS:要清楚,这是一个非常简化的解释。此外,在大多数情况下,您不仅会写入 1 个 LBA 地址,而且会写入许多数据(因为文件很大),因此您将写入 N 个地址的 X 个块,但第 X 个块未完整归档。

  • Windows 7 应该支持 TRIM 命令,但您还需要一个带有支持它的固件的 HDD。 (2认同)