磁盘空间不足是否会影响SSD性能?


16

我想知道SSD上的可用空间少于5-10GB是否会影响性能。它特定于SSD还是更多地涉及操作系统?

例如,在具有TRIM支持的Intel X-25 G2上(在Windows 7上)。

Answers:


14

大多数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应该做到这一点,但是它很昂贵,而且我听到的评论也很复杂。


1
FTL层位于文件系统级别之下。尽管看起来文件系统是碎片化的,但这并不意味着FTL层是碎片化的。这些SSD“碎片整理”程序毫无价值,它们无法访问FTL层,这是蛇油。现在,可用空间不足的确使SSD变慢了,因为它没有更多的空间进行垃圾收集,磨损均衡以及所有这些好东西。SSD本身不会自动选择空块,它们还需要考虑损耗平衡。最重要的是,文件系统对如何将其存储在FTL层上一无所知
Time Twin

未针对SSD优化的文件系统无法修剪得太多,其效果与较小的可用空间相同。
Basilevs


3

它取决于特定的SSD模型,供应商和使用模式。

在某些情况下,无论需要低级擦除以恢复到新的性能水平,而无需考虑已使用的磁盘空间量,大量使用的SSD都可能导致性能显着下降。


例如,在具有TRIM支持的Intel X-25 G2上(在Windows 7上)。
加布

0

我听说SSD快满时趋向于减慢速度,但是我猜想它需要有不到5-10GB的可用空间才能让您有类似的感觉。也许当您的剩余空间不足1GB时。


0

通常,文件系统装满后会变慢。这是由于碎片。在空磁盘上,可以确定可以在一个块中写入文件。随着文件系统变满,能够将文件放入单个连续块的机会减少,您必须做越来越多的工作来查找数据,将原来对数据的顺序访问转换为更像是对数据的随机访问,因此速度较慢。


2
这不适用于SSD,因为没有活动部件,因此随机访问增加的访问时间可忽略不计。您可能需要使文件随处可见,并散布成千上万个随机片段,以产生任何明显的影响,这主要是来自操作系统本身在计划其读写操作。
TuxRug

1
顺序读取和随机读取之间仍然存在差异。例如,codinghorror.com / blog / 2008/06 /…顺序读取速度为26MB / s,随机读取速度为6Mb​​ / s。
大猩猩

@TuxRug:将驱动器分组为数百KB或更大的擦除块;写入页面(代表“逻辑磁盘”数据的512或4096字节)后,除非擦除其块中的所有页面,否则将无法对其进行重写。当“逻辑磁盘”扇区被覆盖时,驱动器会分配一个以前空白的页面来保存其新内容,并注意旧页面可能被认为已过时。大多数驱动器不会等待立即擦除过时的页面,而是会等到它们需要空间后,再查找大部分或所有页面已过时的块。
超级猫

@TuxRug:如果空页数严重不足,则驱动器性能将与任何块中最大的空闲或已废弃页数成比例[如果每个块有10个,每个有15个已废弃页,那么接下来的150次写入将进行一次写入每15个/擦除周期。如果有3个块,每个块有50个废弃的页面,则只需要在第50个写入中执行一个写/擦除周期。]碎片使最后一个块的可能性更大,每个块只有几个废弃的页面。
超级猫

0

另一个重要因素是SSD制造商是否设置了超额配置以及设置了多少超额配置,如此处所述。预留空间过大意味着某些空间被保留用于后台活动(例如垃圾收集),并且不可供用户使用。例如,如果设置了10%的超额配置,则广告为256 GB的SSD实际上可能是282 GB。

如果SSD制造商慷慨地提供了过多的空间,那么磁盘空间不足可能不会对性能造成很大的影响,例如,即使看起来100%满的SSD也可能实际上只有85%满了。但是,如果您能够实际填充接近100%的SSD,则可能会导致性能显着下降。

简而言之,效果的大小以及是否会引起注意是特定于SSD的。但一般来说,由于其他答案和链接中所述的原因,SSD在大多数情况下为空时性能最佳,并且在装满时性能会下降。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.