至于TRIM对SSD的作用,结果是否与将零写入空闲空间相同?例如:cat /dev/zero > zero.file; rm zero.file在驱动器上运行?
编辑:
TRIM 的解释比我在这里做得好:
我在侧边栏中找到了这个问题的链接。所以,如果你需要精简版的 TRIM 解释,我在下面提供了它:
您必须了解 SSD 的工作原理才能了解问题的答案:
由于技术原因,从 SD 卡写入和读取速度很快。唯一可能非常慢的操作是删除某些内容。基本上,写入和读取可以在小部分完成,而要删除某些内容,控制器必须向该内容所在的整个区域施加相对较高的电压。这意味着它必须获取已删除内容周围的所有数据文件,将其复制到磁盘上的不同区域,然后最后将“删除当前”应用到该区域。可以想象,这需要很长时间。TRIM 基本上在后台执行此过程。
如果您在现代操作系统上删除某些内容,您并没有真正删除写入数据的空间。它只是通过删除存储介质文件目录中的文件条目来将文件所在的空间标记为空。
如果您想将新数据写入该文件的位置,该区域在 SSD 上仍未准备好,因为删除并没有真正将存储重置为准备好接收新数据,它只是将其标记为已删除。如果控制器只是等到你需要写一些东西,然后开始整个移动数据/真正删除过程,它会大大减慢正常操作。
所以,如果你删除了一些东西,你可以继续你的工作,如果需要将一些东西写入磁盘,控制器只会选择一个不同的、已经准备好的区域。与这种情况并行,TRIM 通过移动周围数据并施加删除电压来执行实际释放已删除文件空间的缓慢过程。
如果您了解此过程,您就会明白为什么如果您想要良好的性能,建议不要将数据填满 SSD。
现在,如果您将一个包含零的文件写入 SSD 并随后将其删除,那么您基本上已经对它的性能做了一段时间内可能做的最糟糕的事情。至少在 TRIM 完成之前,它很神奇并重置所有这些扇区。
[免责声明] 这显然是外行对这个过程的看法,我在多年前研究 SSD 时阅读了所有这些,当时它们是新的。不过,它应该足以回答你的问题。
编辑:拼写