碎片整理的含义以及何时需要碎片整理

碎片整理的含义以及何时需要碎片整理

碎片整理似乎有两个含义:

  • 碎片整理是减少碎片量的过程。当文件系统无法或不会分配足够的连续空间来将整个文件作为一个单元存储,而是将其部分内容放在其他文件之间的间隙中时,就会发生碎片。

  • 在 Windows 下,如果我们尝试从 NTFS 分区释放现有可用空间(以便稍后创建新分区,尤其是在现有 Windows 操作系统之外的 Ubuntu 双引导安装期间),我们将不得不使用 Windows 工具将所有文件移动到分区的一端,并尽可能在分区的另一端留出可用空间。听说这个也叫碎片整理

    或者,Linux 工具(例如)gparted可以从 ntfs 分区释放可用空间,而无需碎片整理(是上一段的意思,不是第一段的意思)首先是NTFS分区。

问题:

  1. 我想知道上面的两种“碎片整理”是否总是一起发生?

  2. 文件系统(例如NTFS)是否需要碎片整理取决于

    • 使用它的操作系统(例如Windows或Linux),或
    • 文件系统类型(例如NTFS)本身?
  3. 对于碎片整理的不同含义(如前所述),2 中问题的答案是否不同?例如,我听说,

    • 在Linux中,EXT4分区不需要进行第一意义上的碎片整理,除非分区被占用超过90%,因为Linux总是尝试自动进行碎片整理。
    • 使用Linux工具释放NTFS分区的可用空间gparted并不需要对NTFS分区进行第二种意义上的碎片整理,难道是因为Linux总是自动将所有文件尽可能地移动到分区的一端?

答案1

您可以对文件系统(文件、文件系统结构、元数据等)、可用空间或两者上存储的数据进行碎片整理。

也许当有人说“碎片整理”时,他们指的是数据(您的第一个定义)。传统上,在对可用空间进行碎片整理时,它被放在最后(您的第二个定义)。通常,您只会在准备缩小分区时执行此操作,但您也可以执行此操作,例如,允许大量连续分配(例如,您将要编辑一些视频)。但实际上,除了缩小分区之外,通常不需要对可用空间进行碎片整理。

分区收缩通常只能在一端进行(大多数(如果不是全部)分区格式[1] 不允许在中间切洞)。通常,文件系统数据结构占据分区的开头,因此收缩(和增长)通常在末尾完成。无论您使用哪种工具(Windows 磁盘管理器、gparted 等)来执行此操作,最后都必须有足够的可用空间,而这通常需要移动数据。 Windows 和 gparted 都会这样做。

FS 是否需要碎片整理取决于很多因素,至少:

  • 它的用途是什么。随机不常用文档可以容忍无限碎片; DVR 应用程序无法容忍任何挑战极限的行为。有些东西实际上比您想象的更能容忍碎片,例如数据库(因为它们通常进行随机读/写,而不是顺序读/写)。
  • 它是什么类型的驱动器。 SSD 上的查找几乎是免费的,因此碎片化要便宜得多。
  • 可用于磁盘缓存的内存量。如果所有读取都从缓存中得到满足,那么磁盘上的碎片有多大并不重要。或者如果所有写入都可以缓冲足够长的时间以按顺序将它们发送到磁盘。
  • 操作系统,主要是由于缓存差异。
  • 文件系统。有些对于非常碎片化的文件会产生大量开销。

碎片的主要问题通常是它增加了顺序读/写的查找。


1:尽管逻辑磁盘管理器经常这样做。例如,当使用稀疏分配时,通常会尝试回收足够大的未使用空间块。但请注意,它们会向文件系统假装该空间尚未回收(并在文件系统想要写入时将其返还)。

答案2

维基百科的碎片文章毫无价值......

下面我们就来谈谈为什么?什么时候?有关碎片和碎片整理的问题,但没有有关特定 FS 的任何详细信息。

...我还建议第三种选择,其中经常更新的文件(如日志)甚至目录(如下载或/tmp)获得比绝对最小值更多的空闲空间。

例如,为大下载(或慢速链接)预先分配空间。同步期间、传输期间(例如从/到相机或手机)、复制期间(或备份或系统更新)。

相当重要的话题。

如果我们将没有额外可用空间的读写 F/D 放置在较旧的块附近,那么我们就可以启用碎片。

没有增长的F/D可以安全放置,无需额外的可用空间。这包括只读 F/D...这还部分包括未压缩的简单格式(如 BMP),当其分辨率已知时(如 FullHD、4K、8K)。

F/D 只会收缩(非常奇怪和特别的事情)-那么您实际上有无用的间隙,您应该对这些间隙进行碎片整理。当有人使用快速压缩选项(或捕获格式)并将它们压缩到同一目录时,可能会发生这种情况 - 这取决于某些程序是否重用 F/D。

F/D 被整体删除 - 我们可以删除它们或删除文件系统中的记录,而不需要部分删除和立即碎片整理。我们想稍后对这些漏洞进行碎片整理。

处理这种碎片的一种方法是跟踪每个 F/D 的峰值实际大小,或者...更好的方法是使用多个数字,因为峰值很容易不具有代表性(远离中值) 。例如,完整系统备份与办公室工作。

另一种方法是跟踪增长速度。对于 HDD 来说尤其如此。最快的增长者需要磁盘上最快的位置。但速度并不是唯一的因素:关键任务 F/D、大客户、一些紧急优先事项、终止开关的附加选项或仅作为管理员手动预测增长而无需系统中的数据。

最好的方法是保留相关时间段内有关增长的实际数据,并以某种方式预测接下来的增长会发生什么(有关增长的预测数据),然后才猜测预测的差距大小(在预测窗口之后该值将不再那么相关)。

概括:

只缩小 - 意见碎片整理。

永不增长,永不收缩 - ...

增长和收缩——注意间隙并进行碎片整理。

本 wiki 中未涵盖:由于磁盘分区而导致的(消除)碎片

相关内容