为何磁盘碎片?


18

作为Windows常规维护的一部分,我对硬盘驱动器进行了碎片整理。但是,为什么硬盘驱动器会在NTFS和FAT *系统上碎片化?显然ext *没有,这是为什么?我还应该对USB驱动器进行碎片整理吗?


不要碎片化固态设备。甚至没有在Microsoft Windows上。这对固态设备有害,不需要。
ctrl-alt-delor

Answers:


22

碎片化不是30年前的问题。那时,您的硬盘驱动器几乎比软盘要快,而处理器内存的大小却很小。现在,您拥有非常快的驱动器和较大的处理器内存,有时在硬盘驱动器或控制器中还有大量缓冲。加上扇区的大小已变大(或文件分配在更大的块中),因此更多的数据本来就是连续的。

操作系统也变得更加智能。尽管DOS 1.x会按引用从磁盘中获取每个扇区,但是现代的OS可以看到您已打开文件以进行顺序访问,并且可以合理地预测一旦消耗完文件,您将获取其他扇区。那些你现在拥有的。因此,它可以“预取”接下来的几个(六个)扇区。

而且,最好不要有连续的文件。在文件系统分散在多个驱动器上的(大型)系统上,如果“分散”文件,则实际上可以更快地访问文件,因为可以同时搜索多个磁盘。

无论我的盒子是否需要整理,我都会每2-3年进行一次碎片整理。

[我要补充一点,重要的不是磁盘数据是否进行碎片整理,而是可用空间是否进行碎片整理。FAT在这方面很糟糕-除非您进行了碎片整理,否则事情会越来越糟,直到没有两个连续的可用空间块为止。大多数其他方案可以合并自由空间并以某种“智能”方式分配碎片,以便碎片达到一定的阈值然后稳定下来,而不是变得越来越糟。


2
自2005年以来,我尚未对系统进行碎片整理。我说过。
BlueRaja-Danny Pflughoeft

2
@BlueRaja,如果您在旋转存储上执行许多磁盘操作,则对碎片整理有帮助。最近,我发现在碎片整理后,运行我的应用程序版本(2GB的源代码和资产)的速度大约提高了20%,并且此盒的运行时间约为1个月。
liori 2011年

2
内容丰富且有用的帖子,但不是原始问题的答案。我很惊讶地看到这被接受。
EMP

我从未对系统进行碎片整理。现在大约10岁了。我只是第一次扫描,碎片水平非常低(2.3%不连续)。我正在使用ext4文件系统。我也从未进行过病毒扫描。没问题。
ctrl-alt-delor

13

所有文件系统片段。由于ext和其他Linux文件系统的设计方式,它们的碎片较少-引用Wikipedia《 Linux网络管理员指南》

现代Linux文件系统通过将文件中的所有块保持在一起而将碎片最小化,即使它们不能存储在连续的扇区中也是如此。某些文件系统(例如ext3)可以有效分配最接近文件中其他块的空闲块。因此,不必担心Linux系统中的碎片。

我要指出的是,尽管ext4具有联机碎片整理功能,所以即使对于Linux文件系统,最终的碎片也是一个问题。

Windows文件系统将它们的群集放置在有空间放置它们的位置,然后进行碎片整理并替换它们。在Linux中,文件优先放置在有足够空间的地方。

不过,我要指出的是,Windows 7已安排了碎片整理运行,因此,实际上没有必要手动运行碎片整理。


我确实注意到,默认情况下,我的任何计算机上均未启用计划的碎片整理。
Simon Sheehan

5
ext* 不会进行碎片整理。trac.transmissionbt.com/ticket/849h-online.com/open/features/…ext*通过将连续数据存储在磁盘上的随机位置来最大程度地减少碎片。随机偏移将连续文件散布在磁盘周围,并减少了对文件进行分段的需要。
ta.speot.is是2011年

关于Reiser / XFS如何避免碎片的任何说法?我一直想知道它们,但是与ext相比,它们似乎在很大程度上没有记载。
new123456 2011年

1
编辑这些评论时改正我的答案。Ext4确实可以进行在线碎片整理。外部2/3不会。
Journeyman Geek

3
在Windows 7中,默认情况下,碎片整理计划在星期三1AM进行。如果此时您的计算机永不开机,则可能永远不会进行碎片整理。我个人建议您允许运行每周计划的碎片整理(或每周进行其他碎片整理),因为它不会花费很长时间,而且可以100%确保碎片永远不会成为问题。
jcrawfordor 2011年
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.