系统什么情况下会产生磁盘碎片?
10-19
即使到了今天,整理磁盘碎片依然是很多人都坚持每周进行的操作,虽然已经有很多种说法提到在NTFS磁盘格式下,是完全没有必要进行磁盘整理的。但 是这并不是完全的答案,其实在某些情况下,即使硬盘分区是NTFS磁盘格式,依然会导致磁盘碎片的产生,那么到底是怎样的情况下才会产生磁盘碎片呢?我决 定进行一个测试来证明我的猜想。
实验环境:
Windows 7 SP1 X64
新划出一个NTFS格式分区,大小1G
复制300个1MB的文件,总共300MB
随机删掉中间100个文件,腾出100MB空间,这些空间都是不连续的。分割成100个小空间。
然后再塞入一个343MB的大文件。可能的情况如下:
1、这个文件被碎裂成100多个碎片,塞入磁盘开始的100多个空间里。
2、这个文件会优先选择连续的空间存放,实在是没有足够的连续空间了才会拆开放入各种小空间。
实验过程
先介绍一下测试软件,这个软件叫“perfectdisk”,是“disk keeper”的竞争对手,显示图标很详细,用来做磁盘分析很好用。其中如果某个文件碎裂了,会以深一些的颜色显示(如深绿色),如果是连续的,那就会显示成浅颜色(如浅绿色)。
第一步:新建立1GB的分区。可以从软件的图示中看见格式化以后已经写入了一些东西,这些是MFT索引表,还有一些元数据。这是NTFS的特点。
第二步:写入300个1MB的文件,共300MB。可以看见基本上都是没有碎片的,有个别的存在碎片,估计是由于硬盘只有一个,磁头在读写中移动回C盘导致的。
第三步:可以发现有一个文件碎成了2片,其他的文件都是连续的。
第四步:随机删除100个文件。完成之后再进行扫描,可以看到有很多的“孔洞”。
第五步:最后再复制一个343MB的大文件进去。可以看到因为剩余的磁盘空间够大,所以这343MB的文件是按顺序放在剩余的空间中的,并不会占用前面的“孔洞”空间。
第六步:然后再复制一个343M的大文件进去。由于这个时候已经没有足够大的空间,系统只能有优先用磁盘最末尾的文件。但是空间还不够,只能利用原来删除过文件的空白,把文件掰碎了放进去。
果然如我想象的那样,磁盘存在大段连续空间的时候,系统不会把一个文件掰成细碎的文件存放,而是会尽量寻找连续的空间,当连续的空间不足的时候,才不得不把一个文件掰碎放在各种缝隙里面。
结论
所以当你的C盘足够大、剩余空间足够多的时候,是不会产生大量的系统碎片的。而那些“C盘分15G就够用,分20G就够用”的人们,由于C盘可 用空间总是很小,在大量的系统文件读写过程中就会产生大量的碎片,由于大量的碎片严重影响了系统运行速度,所以“系统会越用越慢”。他们的系统总也用不长 久,每隔一段时间就要重装一次。所以要想系统运行快,尽量给系统分区更多的空间。