`

磁盘碎片整理原理

阅读更多

  只要存在硬盘,就会有磁盘碎片。如果您非常关注自己的系统,就应该定期对其进行碎片整理。就像我们要让牙医清洁牙齿一样,碎片整理也同样重要。除非您的计算机始终闲置不用,否则碎片会越来越多。稍后,我将向您演示如何进行碎片整理,但现在先让我们来稍微了解一下碎片整理的历史。

  碎片整理和 Windows NT

  Windows NT® 没有内置的碎片整理实用工具,当时人们普遍认为不需要这个工具。毕竟,NTFS 在构建时进行了优化,而且它不像 FAT 卷那样容易产生大量碎片。但是随着时间的推移,NTFS 性能也可能由于文件位置不佳而产生碎片。大量第三方碎片整理工具即应运而生。最受 IT 专业人员欢迎的一个产品是 Executive Software(现为 Diskeeper Corporation)的 Diskeeper 产品。Windows 2000 增加碎片整理功能后,Microsoft 从 Executive Software 获得了技术授权。Windows® 2000 碎片整理功能可从其自身的 Microsoft® 管理控制台 (MMC) 管理单元 (dfrg.msc) 运行,单击某个卷或手动从命令行中运行 defrag.exe 即可调用该管理单元。虽然这个内置版本无法进行日程安排且只能使用一些受限的命令行,但是许多 IT 专业人员仍创建功能脚本来使用它自动进行碎片整理。Windows XP 和 Windows Server® 2003 中的 defrag.exe 在早期版本的基础上做出了一些改进,但也只能提供有限的自动化 — 您仍需要编写脚本。

  许多供应商(包括我以前的雇主 Winternals Software),都开发了用于企业空间碎片整理的软件。其中大多数产品的工作原理都相同:使用集中式控制台、依赖于客户端系统(可能始终依赖,也可能只按需依赖)的某种类型的代理以及指示碎片整理任务运行时间和方法的结构。

  Windows Vista® 基本上仍采用单系统碎片整理,同时优化了碎片整理程序,还包括一些选项,如对小型文件碎片(64MB 或更小)进行碎片整理,此选项加快了碎片整理速度但会在磁盘上保留许多较大的文件碎片。与 Windows 以前版本相比,Windows Vista 和 Windows Server 2008 中的碎片整理引擎本身的功能更加强大。它还能自动运行而不需要手动安排运行时间。但是,如果您经营一个大型组织或希望采用默认情况下碎片整理不支持的方法来优化系统,可能仍需要使用第三方软件。在早期版本中,对于已启用 NTFS 压缩并且使用很频繁的卷,您可能无法对其进行碎片整理。在这种情况下,第三方工具可能有所帮助。

  碎片是如何产生的?

  随着时间的推移,文件会发生更改,进而就会产生碎片。理论上,Windows 文件自身不会发生更改,或者至少不会经常发生更改。实际上,只有在安装 Service Pack 和软件更新时,Windows 文件才会发生更改。否则,系统文件属于相对稳定。执行大型更新(如安装 Service Pack)后,由于通常无法覆盖磁盘上正进行更新的文件,所以自然会产生碎片,而且更新可能需要重新启动,这也会导致更多的碎片。

  另一方面,用户文件和数据(以及 Windows 注册表)都在不断变化。读取、写入、编辑、复制和删除文件都会导致大量碎片,尤其是在驱动器容量已满的情况下。

  为了形象地说明这种情况,请设想一个组织方式良好的磁盘,其中文件连续占据空间,而文件之间没有多余的空间。假设您打开了一个文件并对其进行编辑,然后试图保存。如果文件已增长,则 Windows 必须将文件完整地保存在磁盘的某个位置(假定在文件 N 后面),或将最新的数据保存在文件 N 后面。这意味着文件 2 现在非常零散。如果现在编辑文件 1,就会出现两个零碎的文件。随着时间的推移,如果一直重复此类过程,最终会得到一个非常零散的系统,其中驱动器需要查看多个位置才能访问单个文件。在大型数据库文件、用于虚拟计算技术的高成本硬盘文件以及一般磁盘中存储的各种视频和音频中,碎片很常见。当然,目前硬盘空间越来越大,碎片算不上大问题,但其影响始终存在。硬盘较小的旧便携式计算机的响应速度会变得越来越慢,打开和保存文件花费的时间也会越来越长。

  关键问题不在于系统的零碎程度,而在于单个文件的零碎程度。从看到第一个磁盘碎片整理程序以彩色视觉效果在屏幕中显示开始,用户就在想“我需要彩色实心块。”但实际上,那是您最不需要的东西。一些产品尝试使其磁盘显示为两个实心块 — 一种为彩色(文件数据),另一种通常为白色(可用空间)。遗憾的是,如果您希望尽可能降低碎片整理的频率和成本,对磁盘进行此操作是最糟糕的事情之一。当您继续对文件进行编辑时,如果已将所有文件数据强行压缩到磁盘的前面部分,并腾出了大量可用空间,则必须将所有这些编辑写入到文件数据的末尾,因此如果通过上述方式进行碎片整理,从下一次文件编辑开始您实际上已经导致了碎片的产生。良好的碎片整理不一定要产生两个经过组织的整齐文件数据块,而是产生一个未必完美的映像。有关进行碎片整理前测试系统的示例,请参阅图 1。然后,请参阅图 2 中 Windows 完成碎片整理后同一系统的状况。

  图 1 进行碎片整理前的驱动器状态

  图 1 进行碎片整理前的驱动器状态 (单击该图像获得较大视图)

图 2 进行碎片整理后的驱动器状态

  图 2 进行碎片整理后的驱动器状态 (单击该图像获得较大视图)

  请注意,Windows 并不关注跨磁盘的文件碎片,而是关注单个文件碎片本身(有关我对系统进行碎片整理之前的大多数零碎文件的碎片整理报告部分,请参阅图 3)。

  图 3 碎片整理报告

  图 3 碎片整理报告

  这样,即使在进行碎片整理后,Windows 也不会在磁盘前面部分显示完全压缩的文件数据集。还要注意图 1 和图 2 中大的绿色数据部分,那是 Windows 页面文件,稍后我会简要介绍一下。如果在 Windows 系统中启用了休眠,它同样会显示在碎片整理中。

  常规的碎片整理是必要的

  就像定期清洁牙齿一样,定期对系统进行碎片整理最重要。如果不经常进行碎片整理,处理过程就会花费很长时间,并且使您的服务器不可用或停止响应(因为碎片整理很费时,而且特定阶段的碎片整理还会占用大量 CPU),所以经常对使用率高的系统(如服务器)进行碎片整理非常重要。

  即使最好的联机碎片整理程序也无法对所有内容进行碎片整理。例如,碎片整理程序无法始终对已打开或锁定的文件(如页面文件或注册表文件)进行碎片整理,而且必须解决可能存在的休眠文件(该休眠文件与系统中正在使用的 RAM 一样大)。要优化锁定的文件,请参阅下一部分中关于碎片整理技巧的内容。

  我认为了解关于碎片整理的误解和事实非常重要。图 4图 5 列出了在讨论碎片整理经常提出来的一些主题并指出了这些问题发生的实际几率。

  碎片整理作为基础结构的一部分

  您应该认真考虑在所有系统中定期运行碎片整理程序。您可以选择使用 Windows 中内置的碎片整理程序或使用第三方产品。这主要取决于您需要进行多少工程处理。Windows XP 及更高版本允许您将 defrag.exe 添加为计划任务,support.microsoft.com/kb/555098 上的相应知识库文章向您显示了添加方法。请注意,便携式计算机碎片整理有一些特殊的注意事项。您想在用户系统启动(最好通过交流电源)时对其进行碎片整理,并且不希望在移动用户正努力完成工作时占用 CPU 和磁盘周期。但遗憾的是,在移动用户未使用自己的系统时,很可能是系统断开了交流电源或者处于待机或休眠状态(从电源管理和计划任务角度出发断开电源)。在 Winternals(其他公司可能也一样),我们花费了很多时间尝试设计一个理想的移动用户方案。如果您使用 Windows Vista,因为它与早期版本相比具有更强的电源感知能力,所以使用内置碎片整理程序和计划任务的解决方案完全可以解决问题。否则,您可能必须使用适用于移动系统的第三方解决方案。某些第三方解决方案实际上是启动碎片整理任务,让您了解该任务是否正在运行、何时运行(和运行频率)以及运行花费的时间。

  除了移动方案,您还需要考虑文件系统之外的碎片。通常,您无须针对桌面或移动系统考虑这一问题,但是服务器、Microsoft Exchange、SQL ServerTM 或其他数据存储可能要求自己进行碎片整理。在此类情况下,您需要决定在执行文件系统碎片整理之前还是之后进行该过程。

  如果您正使用第三方碎片整理程序,还需要确保它使用了 Windows 碎片整理 API。从 Windows NT 4.0 开始,Windows 已经拥有自己的碎片整理 API 以避免意外的数据丢失。例如,如果在移动文件的过程中系统断电,会出现不完整的移动碎片,这会导致数据丢失甚至无法启动系统。

  最后,如果您正使用虚拟计算技术,可能还需要考虑如何管理虚拟磁盘的碎片整理。因为它们同样有可能面临诸多碎片整理问题,在某种意义上还会因大小限制而使情况变得更糟。此外,如果虚拟化解决方案允许压缩磁盘或分区,您可能需要先进行碎片整理,以便释放空间(或者至少可以缩短压缩操作所需的时间)。

  其他工具

  现在,您应该相信碎片整理是一项重要而有价值的功能了吧!即使不使用第三方工具对自身进行碎片整理,您还可以考虑由 Mark Russinovich 提供的一个称为 PageDefrag 的工具,此工具可从 Microsoft Sysinternals 工具站点获得(请参阅 microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx)。如上所述,在 Windows 联机时无法对 Windows 页面文件进行碎片整理。实际上,这同样适用于 Windows 注册表文件和事件日志。通过 PageDefrag,您可以在 Windows 完成启动并锁定这些文件之前使用体积小巧的驱动程序对其进行碎片整理。若要使用它,只需运行 PageDefrag 并将其设置为下次重新启动或每次启动时执行即可。当系统重新启动时(在启动过程中您可能会看到磁盘检查已提前运行),将对列表中的指定文件进行碎片整理(请参阅图 6)。

  图 6 在 PageDefrag 中进行碎片整理的文件

  图 6 在 PageDefrag 中进行碎片整理的文件

  PageDefrag 完成后,系统通常会自动启动。有关 PageDefrag 的详细信息,Lance Whitney 在九月份的实用工具特别推荐安装中进行了介绍(请参阅 technetmagazine.com/issues/2007/09/UtilitySpotlight)。请注意,只有 Windows NT 4.0、Windows 2000、Windows XP 和 Windows Server 2003 支持 PageDefrag,它当前并不受 Windows Vista 支持。

  除了 PageDefrag,您还可以使用 Sysinternals 提供的另一个称为 Contig 的工具,手动对特定文件进行碎片整理(请参阅 microsoft.com/technet/sysinternals/FileAndDisk/Contig.mspx)。如果无法通过正常碎片整理任务对特定文件进行碎片整理或该文件已变得零碎(但卷的其余部分并不零碎),此工具将非常有用。

  Contig 还可以使用通配符对整个目录或子目录进行碎片整理。下面将对 Windows 目录下的所有文件进行碎片整理,无论这些文件位于何处。

  Contig –s c:\Windows\*.*

  应用 –v 开关可进行细节操作,而 –q 开关可使其安静地运行。

分享到:
评论

相关推荐

    磁盘碎片整理绿色版

    - 对于固态硬盘(SSD),由于其工作原理与传统硬盘不同,通常不需要进行磁盘碎片整理,因为这可能会缩短其寿命。 总的来说,"磁盘碎片整理绿色版",如IObit Smart Defrag 2.1,为用户提供了一种便捷的方式,来维护...

    磁盘碎片整理(中文版)

    本文将深入探讨磁盘碎片整理的原理、必要性以及如何使用中文版的磁盘碎片整理软件。 首先,我们来理解一下磁盘碎片是如何产生的。在计算机中,每个文件都被分割成若干小块存储在硬盘的不同位置。当文件被修改或部分...

    磁盘碎片整理工具

    磁盘碎片整理是计算机维护中的一个重要环节,尤其在传统硬盘(HDD)中更为关键,因为这些设备的数据存储方式可能导致文件碎片。磁盘碎片是指文件在硬盘上非连续存储,导致读取和写入速度下降,系统性能减弱。本文将...

    超小超快的磁盘碎片整理

    磁盘碎片整理软件的工作原理主要包括两个阶段:碎片分析和碎片整理。在分析阶段,软件会扫描硬盘,确定哪些文件是碎片化的。在整理阶段,它会将这些碎片文件重新排列,使其连续存储,以减少磁头移动距离,提高读写...

    磁盘碎片整理程序

    需要注意的是,虽然磁盘碎片整理对传统硬盘(HDD)的性能提升显著,但对于固态硬盘(SSD),由于其工作原理不同,碎片整理反而可能缩短其寿命,因为SSD的读写次数有限。因此,对于SSD用户,通常不需要进行碎片整理。...

    最快的磁盘碎片整理 最快的磁盘碎片整理

    磁盘碎片整理是计算机维护中的一个重要环节,它涉及到操作系统、硬盘存储原理以及系统性能优化等多个IT领域的知识点。本文将深入探讨“最快的磁盘碎片整理”这一主题,旨在提供关于如何高效进行磁盘碎片整理,以及...

    磁盘碎片整理工具 磁盘碎片整理工具

    磁盘碎片整理工具的主要工作原理是通过扫描硬盘,识别出分散的文件片段,然后将它们重新组织到连续的空间中,使得文件存储更加紧凑,从而提高硬盘的读写速度。这个过程通常包括分析、整理和优化三个步骤。分析阶段会...

    高速磁盘碎片整理程序

    【高速磁盘碎片整理程序】是一种专门用于优化计算机硬盘性能的工具,它的主要功能是对硬盘上的数据进行重新排列,以消除文件碎片。在计算机中,文件碎片是由于频繁的文件创建、修改和删除操作导致的,使得文件不再...

    磁盘碎片整理软件 圆形磁盘界面

    磁盘碎片整理是计算机维护中的一个重要环节,尤其在长期使用Windows操作系统后,由于频繁的文件读写操作,硬盘上的数据可能会变得分散不连续,形成所谓的“磁盘碎片”。这不仅会降低硬盘的工作效率,还可能导致系统...

    超小的磁盘碎片整理工具

    需要注意的是,虽然磁盘碎片整理对HDD性能提升有帮助,但对于固态硬盘(SSD),由于其工作原理不同,一般不建议进行碎片整理,因为这可能缩短SSD的寿命。在现代操作系统中,如Windows 10,系统已经自动优化了SSD的...

    windows磁盘碎片整理程序源代码.zip

    本文将通过分析"windows磁盘碎片整理程序源代码.zip"中的内容,揭示其工作原理和关键实现细节。 源代码中包含的文件主要有以下几个: 1. **DEFRAG.MAK**:这是Makefile文件,用于指导编译过程。在Windows环境下,...

    专业磁盘碎片整理工具

    磁盘碎片整理工具的工作原理主要包括两个步骤:分析和整理。首先,工具会扫描整个硬盘,识别出哪些文件是碎片化的,然后根据文件大小、使用频率等因素,制定最佳的整理策略。在整理阶段,工具会移动这些碎片文件,将...

    磁盘碎片整理

    需要注意的是,现代的固态硬盘(SSD)并不需要常规的磁盘碎片整理,因为它们的工作原理与传统机械硬盘(HDD)不同,碎片对SSD的性能影响极小。频繁的碎片整理反而可能缩短SSD的寿命。因此,在进行磁盘碎片整理前,应...

    磁盘碎片整理/超快实用

    磁盘碎片整理工具的工作原理主要是通过重新组织硬盘上的数据,将分散的文件片段集中到一起,形成连续的存储空间。这样,当系统读取或写入文件时,就无需在硬盘的不同位置间跳跃,从而提高数据访问速度。同时,这些...

    速度极快的磁盘碎片整理工具

    磁盘碎片整理工具的工作原理主要是通过扫描磁盘上的数据分布情况,找出那些分散的碎片,并尝试将它们重新组织在一起,形成连续的存储空间。这样可以显著提高硬盘读取文件的速度,因为读取连续存储的数据比跳跃性读取...

    使用c语言写的磁盘碎片整理程序

    磁盘碎片整理程序的工作原理通常包括以下步骤: 1. 扫描磁盘:程序首先会遍历整个磁盘,获取每个文件的位置和大小信息。 2. 分析碎片:根据扫描结果,程序分析哪些文件是碎片化的,即不连续存储的。 3. 制定整理计划...

    专业磁盘碎片整理程序

    磁盘碎片整理是计算机维护中的一个重要环节,尤其是在传统的硬盘驱动器(HDD)上,由于其机械读写特性,磁盘碎片可能导致系统性能下降。Windows操作系统虽然内置了磁盘碎片整理工具,但在处理大量碎片时,效率可能...

Global site tag (gtag.js) - Google Analytics