如何查看特定文件的碎片?

时间:2010-05-13 23:10:23

标签: performance filesystems ntfs fragmentation

是否有一个工具可以显示磁盘上的特定文件,它有多碎片? (如果我以线性方式读取该文件,物理磁盘需要进行多少次搜索)

5 个答案:

答案 0 :(得分:16)

带参数-a的Sysinternals工具contig可以对文件或文件夹及其子文件夹中的所有文件执行此操作。

答案 1 :(得分:10)

您可以将DeviceIoControlFSCTL_GET_VOLUME_BITMAPFSCTL_GET_RETRIEVAL_POINTERSFSCTL_MOVE_FILE一起使用,请参阅Defragmenting Files

如果搜索FSCTL_MOVE_FILE,您还可以找到不同的代码示例 这是C中的一个,.NET中的另一个。

答案 2 :(得分:3)

如果您正在使用Linux,

filefrag是您正在寻找的工具。 使用-v参数和filename来获取详细的碎片列表。 http://linux.die.net/man/8/filefrag

答案 3 :(得分:2)

fsutil file queryallocranges offset=<o> length=<l> <file>将显示您需要管理员权限的文件范围。

答案 4 :(得分:2)

当然,“碎片化”是可疑的:

  1. 文件可能在同一个圆柱体中。没有寻求开销,只有旋转延迟。或者不是因为这些碎片可能是最佳的顺序(这个碎片的几率几乎为零)。
  2. 该文件可能是“连续的”但跨越几个柱面。即使按顺序阅读也会导致寻求。
  3. 文件可能位于条带集上,您不知道边界在哪里。您可以跳到同一驱动器上的另一个控制器,另一个主轴或另一个分区。
  4. 小心你得出的结论。