NTFS 性能和大量文件和目录

2023-12-29

采用 NTFS 的 Windows 如何处理大量文件和目录?

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

例如。拥有一个包含 100,000 个文件夹的文件夹可以吗?


以下是来自某个环境中的一些建议,其中我们的文件夹包含数千万个文件。

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

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

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NTFS 性能和大量文件和目录 的相关文章

随机推荐

  • DateTime.AddDays() 未按预期工作

    我有这个简单的程序 DateTime aux new DateTime 2012 6 12 12 24 0 DateTime aux2 new DateTime 2012 6 12 13 24 0 aux2 AddDays 1 Consol
  • 在 Rails cookie 中存储/检索值

    我创建了一个 SessionHelper 模块 它看起来或多或少像这样 module SessionHelper def create cookie cookies signed token value gt expires gt 1 ho
  • 将面向铁路的故障跟踪转换为 Rx 友好错误

    我正在使用一个库 它将结果作为双轨值 成功和失败 Observable map函数体我经常从函数的成功跟踪中得到可观察的结果 但我不知道如何处理它们 在Observable map body 换句话说 我经常陷入结果如下所示的情况 当然这是
  • 跨 gridspec 子图/轴共享 xlabel(部分行)

    我在三个子图上共享一个居中的 xlabel 时遇到一些间歇性问题 这三个子图 1 仅跨越 gridspec 行的一部分 2 其相对于彼此的宽度可能会有所不同 使用docs https matplotlib org stable tutori
  • 从两列创建一个矩阵

    我正在尝试从 Excel 工作表中的两列创建一个矩阵 第一列是具有多个重复实例的键 第二列引用与该键相关的不同值 我希望能够创建第二列中所有值的矩阵 以引用它们针对所有关键实例配对在一起的次数 a b 1 red 1 blue 1 gree
  • 使用 PHP 更改 CSS 值

    例如 我有这个 CSS 脚本 然后 我想将标题值更改为 这些值存储在数据库中 让我困惑的是哪一个应该是最好的选择 使用 PHP 脚本或 CSS 甚至 javascript 我希望它根据数据库中的 CSS 值进行更改 我可以在需要时再次更改
  • 在android中旋转图像时调整图像大小

    我正在处理 android 项目 在该项目中我想旋转图像并触摸到某个固定的枢轴点 我已经完成了所有这些事情 但我面临一个问题 当我尝试旋转图像时 图像位图被调整大小 我不知道为什么会发生 如果有人有的话请给我一个想法来帮助解决这个问题 my
  • 如何从控制台运行twisted?

    我在 Windows 7 上使用 Python 3 和 Anaconda 我安装了 Twistedconda install twisted 现在我正在尝试运行twisted or twistd 从控制台 但我收到此错误 twisted 不
  • 如何使用 Javascript 从 CDN 加载外部 css 文件?

    简而言之 我想在 a 上加载 bootstrap css 文件web page https secure helpscout net members register 13 在互联网上 不是在我的网站上 在浏览器控制台中使用 Javascr
  • 在 Internet Explorer 中添加事件监听器

    Internet Explorer 9 中的元素对象相当于什么 if Element prototype addEventListener Element prototype addEventListener function 它在 Int
  • 什么情况下需要调用两次GC.Collect

    我们有一个 WPF 应用程序 基于 Unity 具有 MMVVVM 模式 在应用程序生命周期中可以有多个项目生命周期 在每个项目生命周期之后我们都会进行手动 Tear Down 并尝试释放 ViewModel 的所有引用 对于 Unity
  • 写入 PIC 上的 EEPROM

    这里有PIC单片机编程器吗 我正在学习一些使用 pickit2 和它附带的 16F690 芯片的 PIC 微控制器编程 我目前正在尝试各种设施 我可以成功read如果我在 MPLAB 中设置 EEPROM vaklue 则代码中来自 EEP
  • Pushwoosh 无法在 Unity 的发布版本中工作

    我试图将 Pushwoosh 与 Unity 集成 最新版本需要我实际使用 Pro Guard 和 gradle 因为存在 multidex 错误 之后 由于 proguard 出现了重复文件错误 我通过创建 proguard user t
  • 无法弄清楚为什么模型在回发时为空?

    我是 ASP NET MVC 的新手 我正在尝试创建一个非常简单的博客类型网站作为学习一切工作原理的方法 但是 当我从评论表单发布到空模型时遇到问题 我不知道为什么 在博客文章页面上 我有一个 添加评论 链接 它调用一些 JQuery 来呈
  • 在 Qt Creator 中运行纯 C 项目

    我使用 qt Creator 创建了一个普通的 c 项目文件 gt 新文件或项目 gt 非 Qt 项目 gt 普通 C 项目 main c include
  • Maps V2 InfoWindow 中的动态内容

    我想在 Maps V2 片段中的标记上显示信息窗口 问题是 我想显示从网络动态加载的位图通用图像下载器 https github com nostra13 Android Universal Image Loader 这是我的 InfoWi
  • PHPUnit 启用颜色输出

    我正在 Windows 7 上从命令行运行 PHPUnit 我尝试通过以下方式启用颜色输出phpunit color 但它仍然显示相同 没有颜色输出 如何在 Win7 上从命令行获取 PHPUnit 的颜色输出 你将不得不使用http so
  • Aeson:派生结构的某些(但不是全部)字段

    我有一个大型结构 我需要它是 FromJSON 的实例 以便我可以将 json 数据解析到其中 我想自动派生 但单个字段需要 特别小心 因为它是 json 中的一个对象 并且我希望它是我的结构中的值的数组 如何在不编写重复所有字段的巨大 F
  • 如何从角度 6 的数组中删除重复的对象

    我正在尝试删除数组中的重复值对象 但不起作用 我认为重复函数正在起作用 但没有反映在li列表 你能找出我需要改变的地方吗 我的服务文件 addComp Names c this item push name Names componenti
  • NTFS 性能和大量文件和目录

    采用 NTFS 的 Windows 如何处理大量文件和目录 在遇到性能问题或其他问题之前 是否有关于可以放置在单个目录中的文件或目录限制的任何指导 例如 拥有一个包含 100 000 个文件夹的文件夹可以吗 以下是来自某个环境中的一些建议