小编典典

NTFS 性能和大量文件和目录

all

带有 NTFS 的 Windows 如何处理大量文件和目录?

在遇到性能问题或其他问题之前,是否有关于可以放置在单个目录中的文件或目录限制的任何指导?

例如,有一个包含 100,000 个文件夹的文件夹是否可行?


阅读 65

收藏
2022-07-08

共1个答案

小编典典

这里有一些来自环境中的人的一些建议,我们有包含数千万个文件的文件夹。

  1. 文件夹将索引信息(指向子文件和子文件夹的链接)存储在索引文件中。当你有很多孩子时,这个文件会变得非常大。请注意,它不区分作为文件夹的子对象和作为文件的子对象。唯一的区别实际上是该孩子的内容是孩子的文件夹索引或孩子的文件数据。注意:我在某种程度上简化了这一点,但这说明了重点。
  2. 索引文件将变得碎片化。当它变得过于碎片化时,您将无法将文件添加到该文件夹​​。这是因为允许的片段数有限制。这是设计使然。我已在支持事件电话中与 Microsoft 确认了这一点。因此,尽管理论上您可以在文件夹中拥有的文件数量限制为数十亿,但当您开始达到数千万文件时,祝您好运,因为您将首先达到碎片限制。
  3. 然而,这并不全是坏事。您可以使用工具:contig.exe对该索引进行碎片整理。它不会减少索引的大小(对于数千万个文件,它可以达到几个 Gig),但您可以减少片段的数量。注意:磁盘碎片整理工具不会对文件夹的索引进行碎片整理。它将对文件数据进行碎片整理。只有 contig.exe 工具会对索引进行碎片整理。仅供参考:您还可以使用它对单个文件的数据进行碎片整理。
  4. 如果您进行碎片整理,请不要等到达到最大片段限制。我有一个文件夹无法进行碎片整理,因为我等到为时已晚。我的下一个测试是尝试将该文件夹中的一些文件移到另一个文件夹中,看看我是否可以对其进行碎片整理。如果这失败了,那么我要做的是 1)创建一个新文件夹。2)将一批文件移动到新文件夹。3)对新文件夹进行碎片整理。重复 #2 和 #3 直到完成,然后 4) 删除旧文件夹并重命名新文件夹以匹配旧文件夹。

更直接地回答您的问题:如果您正在查看 100K 条目,请不要担心。去把自己打晕。如果您正在查看数以千万计的条目,那么:

a) 制定计划将它们细分为子文件夹(例如,假设您有 100M 个文件。最好将它们存储在 1000 个文件夹中,这样每个文件夹只有 100,000
个文件,而不是将它们存储在 1 个大文件夹中。这将创建 1000 个文件夹索引,而不是一个更有可能达到最大片段数限制的大索引或

b) 制定计划定期运行 contig.exe 以保持大文件夹的索引碎片整理。

仅当您感到无聊时阅读以下内容。

实际限制不是片段的数量,而是存储指向片段的指针的数据段的记录数。

所以你所拥有的是一个数据段,它存储指向目录数据片段的指针。目录数据存储有关该目录应该存储的子目录和子文件的信息。实际上,目录不会“存储”任何东西。由于存储介质本身是线性的,因此它只是一种跟踪和呈现功能,向用户呈现层次结构的错觉。

2022-07-08