![服务器信息](https://linux22.com/image/520143/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BF%A1%E6%81%AF.png)
我们有一个 600 GB 的硬盘,几乎已满。它已装满了 18,501,765 个文件(大部分是 19k 的小图像)和 7,142,132 个文件夹。很难找出所有空间都去了哪里。我们的常规清理程序没有清理出足够的空间,这意味着我们需要查看整个驱动器,确定其中有哪些内容以及可以移动或删除哪些内容。我们尝试了几个应用程序,到目前为止,它们要么崩溃了,要么只是运行了很长时间才完成。
服务器信息
- 操作系统:Windows 服务器 2003
- 文件系统:NTFS
解决方案
太空观察员能够读取 18,501,765 个文件和 7,142,132 个文件夹,几乎不占用任何内存。我确信这主要是因为它使用 SQL 后端来存储所有数据。不幸的是,它是所有产品中最昂贵的,每台服务器售价 259.95 美元。
尝试的解决方案
在研究期间,我尝试了几种不同的解决方案,既有付费的也有免费的。我在下面列出了我尝试过的产品,供大家参考。
免费软件
磁盘报告- 停止于 1000 万目录统计- 停止于 1000 万太空贩子-由于提到 RAM 存储而跳过太空嗅探器- 停在未知地点 - 撞车
支付软件
文件夹大小- 停止于 1200 万(300 万个文件夹)TreeSize 专业版-由于提到 RAM 存储而跳过
更新
更新 #1:我尝试分析的服务器有 2 GB 的 RAM,我尝试的大多数产品似乎都试图将文件/文件夹信息保存在内存中。这往往会在 18,501,765 个文件和 7,142,132 个文件夹中很快耗尽。
更新 #2:看来 WinDirStat 的开发人员参与得足够多,他们告诉我们它可以在 64 位下编译。这给了它更多的内存来工作,但我不确定这是否足够,除非他们可以持久保存到磁盘。
答案1
假设您的操作系统是 Windows...
无论你如何划分,对数百万个文件进行制表总是需要很长时间,并且会受到磁盘本身 I/O 的限制。我建议TreeSize 专业版。 或者可能太空观测服务器。您也可以尝试一下 TreeSize 的免费版本。
答案2
一定要尝试目录统计:它通过将每个文件描绘为按比例绘制的矩形,并按文件类型进行颜色编码,提供了出色的磁盘使用情况可视化效果。单击可视化中的任何项目,您将在目录树中看到它。
标准 32 位构建限制为 1000 万个文件和 2 GB RAM 使用量,但源代码将成功构建为 64 位应用程序。在这种特定情况下,所讨论的服务器只有 2GB RAM 可能会出现问题,但大多数具有如此大量文件的服务器将拥有更多的 RAM。
编辑 #1:我很遗憾地发现,在包含数百万个文件的 4TB 卷上进行测试时,WinDirStat Portable 在索引了大约 650 万个文件后崩溃了。如果驱动器包含 600 多万个文件,它可能无法解决原始问题。
编辑 #2:WinDirStat 完整版在处理 1000 万个文件并使用 1.9GB 时崩溃
编辑 #3:我联系了 WinDirStat 开发人员,并且:(1) 他们同意这是由 x86 架构的内存使用限制引起的,并且 (2) 提到它可以编译为 64 位而不会出现错误。很快会有更多信息。
修改 #4:WinDirStat 64 位版本的测试成功。在 44 分钟内,它索引了 1140 万个文件并消耗了 2.7 GB 的 RAM。
答案3
我经常使用文件夹大小在几个有数百万个文件的 1TB 驱动器上没有任何问题。
答案4
- 光盘 \
- dir /s > 输出.txt
- 噗!奇迹发生了;或者出现了一个 perl 黑客
- 结果!
说真的。我已经用 500 万或 600 万个文件做过这个了;不确定你到底在寻找什么,但一个好的脚本语言会解决它。