为了释放磁盘空间是否值得从 SSD 驱动器中删除文件?

为了释放磁盘空间是否值得从 SSD 驱动器中删除文件?

我想删除 SSD 驱动器上的数 GB 文件以释放磁盘空间,这样这些可用磁盘空间将有助于减少驱动器的磨损,但另一方面,我不愿意这样做,因为删除文件会导致用零覆盖这些文件(“TRIM”),这也会导致驱动器磨损。该驱动器仅用于系统(Windows)和程序文件,因此,希望它几乎是只读的。我预计删除这些文件将导致大量的写入,自安装系统以来我的驱动器从未见过这种情况。

我有一个 60 GB 的驱动器。目前我有一个 44 GB 的 C: 分区,其中有 3 GB 的可用磁盘空间,还有一个 12 GB 的 D: 分区,其中有 1 GB 的可用磁盘空间。

那么,简而言之,对于驱动器的使用寿命来说,什么更有益 - 拥有大量可用空间还是减少此类文件的大规模破坏?

PS 我知道拥有更多可用空间将提高驱动器的速度,我的系统将运行得更快。我不在乎。对我来说已经足够快了。

答案1

简而言之:

这取决于要删除的数据以及驱动器大小和使用情况。

  • 小型驱动器,定期使用:删除数据
  • 小型驱动器,很少使用(甚至可能是相当旧的 SSD):考虑保留数据
  • 大驱动器,要删除的小数据:你可以保留它
  • 大驱动器,大数据量:删除数据

一般原因:

信息:SSD 确实不写零就像 HDD 一样,而是删除了这些单元。(检查 feTRIM 到底是什么?)。

每个单元都有大致的写入/删除数据次数(取决于驱动器;在控制器发生故障之前,读取次数可能多或少)。为了延长使用寿命,SSD 和其他(主要是闪存)内存自过去几年以来使用了一种称为“磨损均衡”的技术(似乎这个术语对每个人来说可能都不清楚)。通常,您希望拥有尽可能多的可用空间,以便每个单元都能获得相同数量的写入操作。但 SSD 通常使用:

静态磨损均衡*:不仅将新块移动到新单元,还将不定期更改的静态块移动到新单元,以便其他数据可以使用这些低使用率单元。这种旋转效应使 SSD 能够继续运行,直到大多数块接近其使用寿命。

现在记住,每个单元格都有一定次数的写入/删除数据,如果它不断需要移动 44GB*(它可能不会完全做到这一点,因为控制器非常智能),移动文件可能会导致寿命缩短。虽然您需要知道大多数控制器的工作方式不同,它们会尽力做到(预期的)最佳状态,但肯定不是每个单元都能达到相同的写入量。

还要记住,系统驱动器确实会在短时间内写入大量数据。我有一个 256GB 的驱动器,使用了 60GB,很少用于业务用途(<50mb 的文件,如 xls/pdf),它在 3.5 年内成功写入了近 2TB!(其中大部分是 Win10 更新,下一个大主题是 sql 数据库)

考虑驱动器大小:

如果将 44GB 移到 60GB SSD 或 4TB+ SSD 上,效果会大不相同。较新的 SSD 具有额外的空间,无法访问,可用于超额配置。规则:SSD 容量越大,超额配置越高。

答案2

为了释放磁盘空间是否值得从 SSD 驱动器中删除文件?

不,特别是当您需要这些文件时。

这些可用磁盘空间将有助于减少驱动器的磨损,

错误的假设。
磨损均衡既包括已使用的扇区,也包括未使用的扇区。

因为删除文件会导致用零覆盖这些文件(“TRIM”),这也会造成驱动器磨损。

错误的假设。
删除文件不会导致任何(自动)“覆盖“;这就是为什么文件可以“取消删除”的原因。TRIM
操作不会将零写入闪存。但是,可以将已“修剪”的扇区配置为读回零。这是由板载 SSD 控制器实现的,并不反映存储的数据。

SSD 文档明确指出,当为“空闲”(即未映射)LBA/扇区设置该标志时,控制器将以零响应数据。这并不意味着 LBA/扇区实际上包含零,因为这实际上会阻碍性能(即它未被擦除并准备好写入)。请参阅第 3.8.2 节的最后一段此 Seagete 产品手册

我预计删除这些文件将导致大量的写入,自从我安装系统以来我的驱动器就没有见过这样的写入。

错误的假设。
删除文件仅涉及修改文件系统元数据,例如目录条目和分配表。删除期间不会访问文件的数据扇区(除非存在某种特殊的安全协议)。

那么,简而言之,对于驱动器的使用寿命来说,什么更有益 - 拥有大量可用空间还是减少此类文件的大规模破坏?

这两种选择都不会显著影响“长寿”SSD 的
写入操作(触发块擦除) 会影响闪存芯片的寿命。

现在,您可以想象一种最坏的情况,即未分配的扇区在擦除块中分散得如此之多,以至于损耗均衡任务必须执行多次读取-擦除-写入操作(即内部复制)才能获得可写入的扇区。但这种情况只有在“满”驱动器上多次重复写入文件和删除文件后才会发生。

PS,我知道拥有更多的可用空间将会增加驱动器的速度,并且我的系统将运行得更快。

只有在写入操作不会因已擦除块不可用而延迟的情况下才是正确的。
读取操作的速度不受先前存储的数据量的影响。

相关内容