我应该对我的SSD进行碎片整理吗?


120

我刚刚知道应该“永远不要对你的SSD进行碎片整理”。但我不知道这是不是真的。

我相信Windows 10会自动安排在我的SSD上完成碎片整理,但我取消了它。是否会导致之前进行碎片整理的任何问题?

SSD仍未分区,因为我无法在“我的电脑”文件夹中看到SSD驱动器,仅在系统硬件管理器中。在SSD上安装Windows应该采取哪些正确的步骤(这是我的第一个SSD)?


12
“从未对您的SSD进行碎片整理”的建议已经过时,并且来自SSD较慢且写入耐久性比现代SSD更为有限的时候。现代SSD往往受IOPS限制,而碎片整理的文件系统需要更少的I / O.
David Schwartz

5
对@DavidSchwartz来说,自发杀死现代SSD所需的写入/删除量非常高。除非您正在处理大量信息,否则即使您执行传统的defrags,您的SSD也可能比其他许多组件的使用寿命更长。
DanK 2016年

29
你为什么要对SSD进行碎片整理?碎片整理的目的是使文件在磁盘上连续,因此读取头不必遍历整个地方(这需要时间,因为它涉及物理移动)来读取文件。我不是专家,但AFAIK SSD是固态和随机访问。所有访问都需要同一时间,因此文件块的分布方式无关紧要。
jamesqf 2016年


6
正如Ajedi32所指出的,关于这两个问题的建议完全相反。这应该会影响复制的方向。如果关于另一个问题的建议现在被认为是错误的,那么读者登陆那里的唯一方法就是找到这个问题的答案,如果这个问题与这个问题重复。
fixer1234 2016年

Answers:


134

让Windows完成它的工作。每月一次,它还会在SSD上进行真正的完整碎片整理,以优化内部元数据。

简而言之,是的,Windows有时会对SSD进行碎片整理,是的,智能和适当地对SSD进行碎片整理非常重要,是的,Windows对于如何处理SSD非常聪明。

以下是微软的回复:

如果启用了卷快照,Storage Optimizer将每月对SSD进行一次磁盘碎片整理。这是设计和必要的,因为碎片SSD卷上的写入性能上的volsnap复制缓慢。这也有点误以为碎片不是SSD的问题。如果SSD过于分散,您可以达到最大的文件碎片(当元数据不能代表任何更多的文件碎片时),这会在您尝试编写/扩展文件时导致错误。此外,更多文件片段意味着在读取/写入文件时要处理更多元数据,这可能导致性能降低。

就Retrim而言,该命令应该按照dfrgui UI中指定的时间表运行。由于在文件系统中处理TRIM的方式,Retrim是必要的。由于响应TRIM的硬件性能不同,TRIM由文件系统异步处理。删除文件或以其他方式释放空间时,文件系统会对要处理的修剪请求进行排队。为了限制查看资源的使用,此队列可能只会增长到最大数量的修剪请求。如果队列的最大大小,则可能会丢弃传入的TRIM请求。这没关系,因为我们会定期通过Storage Optimizer进行Retrim。Retrim以粒度完成,应该避免达到TRIM被丢弃的最大TRIM请求队列大小。

所以在SSD上安装Windows并忘记它。Windows将自行完成所有工作。


16
有时我们会嘲笑微软这么愚蠢。但有时我只是对一些Windows元素的思考程度感到惊讶。
BlueWizard 2016年

1
然而,AFAIK Linux / EXT根本不需要这样做。
2016年

6
在EXT中碎片保持最小但仍然可以在特定用例中发生,至少在Ext3中:en.wikipedia.org/wiki/Ext3#Disadvantages
Bret

6
EXT变体会破碎并失去性能。任何说不然的人都在兜售Linux优势所在。来源:我为它实现了一个驱动程序,它确实如此。
imallett 2016年

1
@spraff这是因为EXT在块之间留下了空格,并且当文件增长时,文件不需要部分地写在其他地方。当它成长。基本上当你有一个视频文件(从未增长)时,它仍然需要比所需更多的空间,因此浪费空间。没有系统是完美的
BlueWizard 2016年

49

我刚刚知道应该“永远不要对你的SSD进行碎片整理”。但我不知道这是不是真的。

一点点知识是危险的。如果您的系统完全不知道SSD是什么,那么永远不要对SSD进行碎片整理可能是个好主意- 比如说Windows XP。如果SSD是脆弱的雪花,可能会在正常使用的严酷热量下磨损和融化 - 我有一个详细的答案,为什么这是不正确的。这是相当困难的,以“磨损”在正常使用的驱动器。忘掉这一点可能很方便。

让我们考虑一下,如果您的应用程序正在杀死SSD,甚至像Spotify那样进行大量写操作,那么人们就会翻转。编写操作系统的人通常很聪明。

我正在引用Scott Hanselman撰写的这篇博文,其余的答案都是如此。Magicandre的回答也提到了这一点,但我从中汲取了不同的教训。值得一读的细节。我对我如何表达信息采取了一些自由。我从这开始

我认为主要的误解是大多数人都有一个非常过时的磁盘\文件布局模型,以及SSD的工作原理。

SSD确实碎片化,需要跟踪这些碎片。从根本上来说,碎片整理SSD有助于您的文件系统高效运行,即使它与旋转生锈驱动器的方式不同。我引用的帖子指出,卷快照在没有碎片整理的情况下会很慢。

SSD还具有TRIM的概念。虽然TRIM(retrim)是一个独立于碎片的概念,但它仍然由Windows Storage Optimizer子系统处理,并且从用户的角度来看,计划由相同的UI管理。

TRIM很好。修剪可以节省写入,因为它是一种将块标记为已读而不删除它们并根据需要擦除它们的机制。

无论谁告诉你从不对驱动器进行碎片整理,都不知道现代操作系统是专为SSD设计的,并且必须提供必要的内务处理流程。

虽然很容易假设你知道的更好,但在这种情况下,编写操作系统的人已经为你优化了一些东西。保持冷静,让Windows对驱动器进行碎片整理。


8
我认为通过提及逻辑块地址与物理块地址可以大大改善这个答案。对SSD进行碎片整理是不可能的,由于闪存映射,导致顺序逻辑地址的文件系统级过程仍然会导致数据分散在物理磁盘周围,这是正常的,因为SSD是随机访问的。
Ben Voigt 2016年

说实话,这是一个我仍然没有理解的概念。我相信对这一点的全面处理会对我的一个问题做出很棒的回答,而且我的测试帐户中有一些代表我会很乐意作为它的奖励。
Journeyman Geek

22

为了完整起见:

碎片取决于文件系统(FS),而不是光盘或操作系统。

这意味着您的问题的答案实际上不需要要求Windows *; SSD是特殊情况 - 它的工作方式与普通光盘不同。

FS是一种在光盘上组织文件的方法。最常见的Windows格式是NTFSFAT32。在Linux上最常用的FSS的ext3/ ext4,但也有许多人(zfsxfsjfsReiserFSbtrfs,和更多)。

光盘分为。你可以把它想象成一个可以写一些数据的长磁带。在光盘上写入内容时,可以使用这些块。显然,您希望将相关文件彼此相邻写入,并将单个文件写入单个块中,这样您就不必跳过磁带。当事情四处散乱时,我们称之为碎片化。碎片整理将它们组织起来。

显然,你如何组织事物(FS)决定了它们的组织程度(是否存在碎片)。如果您从一开始就组织文件,则不会出现碎片。这就是某些文件系统(例如ext系列)中发生的情况。这些文件系统动态地组织你的文件(在写之前),这样你就不必对它们进行碎片整理,除非在特殊情况下没有任何其他选择,只是引入一点点混乱。

有关ext4它以及如何防止碎片的更多信息,请参阅此页面

现在SSD工作方式不同; 这不是录音带。您可以随时随地访问。碎片整理的重点在于整齐地整理文件,这样您就不必跳转了。在SSD中没有办法跳转。你不在乎是否必须前后来到磁带的另一端; 没有磁带。

但是,还有其他优化SSD的方法。请参阅此主题以获得说明。

*几乎; 文件系统选择与OS相关。大多数Linux用户使用与Windows或OS X用户不同的FS。


3
正是这样。无论存储介质如何,都会在FS级别上发生碎片。有些媒体比其他媒体更受其影响,但总有一些影响,而且它不会因为你有SSD而消失。
Dmitry Grigoryev 2016年

1
主要的区别是Ext3和FAT vs Ext4和NTFS; 但即便如此,应用程序,操作系统甚至硬件确实做出了重大贡献。Windows按照使用顺序组织启动时使用的文件,例如 - 允许大多数启动使用块读取而不是搜索。您可以调用该碎片整理 - 除了FS级别的碎片整理(减少文件碎片)之外,它还会对文件组进行“碎片整理”,以便以FS无法真正帮助的方式优化访问。您可以想象许多类似的优化,例如将DLL移动到接近EXE的位置。
Luaan 2016年

有很多不同的层面都以自己的方式存在。例如,条带化是一种有意破碎的方法,可以提高性能。如果HDD具有可以同时从多个盘片读取的多个头,则HDD的物理组织也可以使用它。固态硬盘不需要旋转盘片并移动头部进行搜索,但它们仍有IOPS限制 - 而今天的SSD速度通常比原始带宽更重要。SSD寻求不再足够快以使带宽饱和。碎片化是基本问题的一小部分 - 缓存。
Luaan 2016年

@Luaan:没有“SSD寻求”这样的东西。我想你实际上是在谈论每命令处理开销。
Ben Voigt 2016年

1
@BenVoigt我认为Luaan意味着即使在SSD上,非整合文件仍然需要更长时间才能读取。没有寻求延迟,但SSD上的顺序读取和随机读取之间存在显着差异。
user1306322 2016年

7

现有的答案很棒,但我有一些东西可以补充它们......
我对我的SSD进行碎片整理禁用自动TRIM,但原因完全不同于提到的:

  1. 我希望能够在我意外删除某些内容时恢复文件或分区。
    不,它不会经常发生,但是它发生的次数很少,如果我无法恢复我本来能够在硬盘驱动器上恢复的东西,即使我在删除后立即恢复它们也是非常令人沮丧的。

  2. 我每隔几个月就会扩展,缩小甚至移动分区,对文件进行碎片整理和整合会使这项操作更快,风险更小。您认为现在可以信任分区管理器,但是直到2015年12月,我在普通移动/调整大小操作时遇到错误(损坏)。更聪明的分区管理器试图避免在任何损坏完成之前运行严重碎片的卷(通常,尽管并非总是成功)。

  3. 有时会使用Linux,而且最近大约一年前,我已经被它的NTFS卷损坏所灼伤。这不是因为碎片特定,而是看到它甚至无法正确处理碎片化的文件,我处于防御状态,并试图尽可能地呈现尽可能清晰的卷(即便如此,我避免写入大多数的时间)。

关于#2和#3的悲伤部分是,那些没有亲眼看到这些问题的人总是认为我很疯狂并且正在全力以赴,或者我的系统必须以某种方式被打破。但是我在多个系统上重复了这几次,作为编写自己 NTFS读者的人,我对文件系统和内核编程知道了一两件事......以NTFS为中心。所以当我看到它们时,我知道错误。没有人相信我,但我总是警告人们,因为我已经亲眼看到了这些 - 所以,如果你搞乱分区或者根本不使用Linux,我建议你保持驱动器的碎片整理。因人而异。

哦,别忘了在一段时间手动每运行一次TRIM,当你没有需要恢复什么。虽然如果我说实话,我还没有看到任何好处......


1
非常好,出于同样的原因,特别是对于摄影而言,碎片整理(甚至“零”)闪存驱动器是一个很好的程序。连续文件更容易恢复,甚至部分恢复。除了寻求时间,如果操作系统足够聪明,您还将受益于预取(预读)。SSD的速度往往比内存慢(但并非总是如此)。
mckenzm 2016年

实际上,“你是否使用Linux并使用它读取/写入NTFS文件系统”不是你的Linux建议“,实际上并非”如果你根本使用Linux“?在SSD上使用带有ext4或XFS的Linux是非常安全的。(和FAT,就此而言,如果需要,你可以为数据交换创建一个FAT分区。)
mattdm

@mattdm:是的,我想。(很奇怪,我以为我已经回复了这个...)
Mehrdad 2016年

0

你可以对你的ssd进行碎片整理。你应该?当然不是很常见,但有一些情况下,很少这样做是有益的。

a)你有一个三星Evo 840受到旧文件缓慢读取的影响。碎片整理将有效地重写它们,它们不再是旧文件。

b)虽然碎片对SSD的影响极小,但控制器仍然需要重新组装分布在许多闪存芯片上的文件。这对性能的影响非常小,但是再次进行碎片整理应该重新组织文件并使控制器更容易重新组装。

c)如果你有任何接近现代ssd的东西,偶尔的碎片整理不会影响它的使用寿命。在2018年,一个hw技术网站测试了ssd耐力,三星evo 840 500GB使用2d tlc(具有非常差的耐力)在大约600 TB的写入时失败。任何更好的东西都可能使用3d tlc(一些公司称为vnand),它具有更强的耐力。更大的模型也有更多的单元写入,这进一步提高了耐力。如果你有一个大的专业驱动器耐力是一个完全没有问题(在我之前提到的测试我提到三星专业版512 GB持续写入9 PB ...更大/更新的型号应该持续更多)。除非你是故意的,否则几乎不可能达到这些数字。用来杀人的写作(无论如何,便宜的,


-3

对SSD进行碎片整理可以促进最低寻址内存块的早期故障。

请参阅:http//techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead

“即使使用耗损均衡算法在闪存中均匀地分配写入,所有单元最终都会失败或变得不适合工作。当发生这种情况时,它们将被淘汰并替换为SSD过度配置区域分配的闪存。这个备用NAND确保了驱动器的用户可访问容量不受破坏其细胞的消耗战的影响。“

“伤亡最终将超过驱动器的补偿能力,留下未解答的问题。需要多少次写入?最终您的数据会发生什么变化?随着写入堆积,SSD会失去任何性能或可靠性吗?”


5
这是一种极端情况,驱动器会写入大量数据并将其覆盖。这与常规的常规碎片整理有什么关系?
Journeyman Geek

不,这不是一个极端的案例......它是一个测试,显示产品的固有或最终的弱点。测试旨在显示限制。
jwzumwalt 2016年

-6

每次重写时,SSD上的每个单元都会变慢。磁盘通过跟踪已写入哪些单元格来隐藏磨损,并首先写入少量使用的单元格。碎片整理意味着在许多单元上进行大量重写,因此它会磨损SSD。由于不需要经常移动伺服臂,因此通过碎片整理可以提高HD的性能,但是随着数据的随机放置,SSD不会减慢速度。


10
没有downvote,但有兴趣看到这方面的来源。
brichins 2016年

3
你将写入放大磨损均衡混淆。SSD在写入之前必须擦除,但它们会擦除比写入更大的块。这意味着单个写入可能会执行多次写入以对数据进行混洗并释放块以进行擦除。随着更多的写入发生,这个过程变得更加复杂。这是写放大。有各种方法可以解决这个问题,如TRIM和过度配置。磨损均衡会分散您写入的细胞,因此它们不会完全失败。
Schwern 2016年
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.