Answers:
大多数SSD会在装满后减速。SSD倾向于选择要写入的空块,因为它们只能通过擦除并重新写入整个块来修改该块。一旦所有这些块都被部分填充,则每个写操作都将需要擦除和重写,这意味着SSD必须将块读入高速缓存,使用新数据修改高速缓存,然后擦除该块并写入高速缓存。这需要修改每个块的一次读取和两次编程操作。此外,尽管碎片化对SSD的影响很小,但高度碎片化以及大多数操作系统都不知道SSD的事实可能导致操作系统发出比所需更多的写操作。SSD的块通常大于OS的分配单元,因此,如果SSD不需要额外的写入,它可能最终会在每个块上重复相同的三步过程,从而减慢写入速度。甚至删除文件也无法解决此问题,因为数据仍然存在,并且SSD不知道不再使用它,并继续重写此删除的数据。
驱动器支持的TRIM操作允许操作系统通知驱动器摆脱已删除的数据。这使驱动器可以回收空块。但是,唯一支持TRIM的操作系统是Windows 7,Windows Server 2008 R2和使用内核2.6.33或更高版本的Linux发行版。
由于具有Windows 7,因此系统正在使用TRIM命令,并且能够回收未使用的块。但是,TRIM不会重新排列数据,因此,如果驱动器快满了,碎片过多仍会导致数据部分占据块,并限制了TRIM的有效性。据我所知,最好的办法是释放尽可能多的磁盘空间。如果您可以释放足够的空间,则可以修剪完整的块,并且驱动器将恢复一些速度。另外,还有一些针对SSD的碎片整理程序,这意味着它们只会对碎片进行整理,足以修剪一些额外的块,但我不知道有没有免费的块。我认为Diskeeper应该做到这一点,但是它很昂贵,而且我听到的评论也很复杂。
在AnandTech的这篇出色文章中,他们探讨了备用区域与SSD性能之间的关系。最重要的是,所有SSD在未使用某些空间时都会获得/保持性能。有时25%的可用空间和50%的可用空间之间甚至存在差异。
通常,文件系统装满后会变慢。这是由于碎片。在空磁盘上,可以确定可以在一个块中写入文件。随着文件系统变满,能够将文件放入单个连续块的机会减少,您必须做越来越多的工作来查找数据,将原来对数据的顺序访问转换为更像是对数据的随机访问,因此速度较慢。
另一个重要因素是SSD制造商是否设置了超额配置以及设置了多少超额配置,如此处所述。预留空间过大意味着某些空间被保留用于后台活动(例如垃圾收集),并且不可供用户使用。例如,如果设置了10%的超额配置,则广告为256 GB的SSD实际上可能是282 GB。
如果SSD制造商慷慨地提供了过多的空间,那么磁盘空间不足可能不会对性能造成很大的影响,例如,即使看起来100%满的SSD也可能实际上只有85%满了。但是,如果您能够实际填充接近100%的SSD,则可能会导致性能显着下降。
简而言之,效果的大小以及是否会引起注意是特定于SSD的。但一般来说,由于其他答案和链接中所述的原因,SSD在大多数情况下为空时性能最佳,并且在装满时性能会下降。