如何可视化具有数百万个文件的硬盘空间?


18

我们有一个600 Gigs的硬盘,快满了。它已填满18,501,765个文件(主要是19k小图像)和7,142,132个文件夹。很难找出所有空间也都去了哪里。我们的常规清理程序没有清理足够的空间,这意味着我们需要从整体上看待该驱动器,并确定其中有什么以及可以移动或卸下的内容。我们已经尝试了多个应用程序,到目前为止,它们要么已崩溃,要么只是运行了惊人的时间才能完成。

服务器信息

  • 操作系统:Windows Server 2003
  • 文件系统:NTFS

Space ObServer能够读取18,501,765个文件和7,142,132个文件夹,而几乎不占用任何内存。我敢肯定这主要是由于它使用SQL后端存储所有数据。不幸的是,它是所有产品中最昂贵的,每台服务器259.95美元。

尝试的解决方案

在研究期间,我尝试了几种不同的收费和免费解决方案。我保留了下面尝试过的产品列表,以供大家参考。

免费软件

付费软件

更新

更新#1:我正在尝试分析的服务器具有2 GB的RAM,并且我尝试尝试的大多数产品似乎都尝试将文件/文件夹信息保留在内存中。使用18,501,765个文件和7,142,132个文件夹时,这样做往往会很快用完。

更新#2:看起来WinDirStat的开发人员已经参与其中,足以告诉我们它可以在64位下进行编译。这样可以为它提供更多的内存,但是除非它们可以持久存储到磁盘上,否则我不确定是否足够。


什么操作系统?
韦斯利2010年

是Windows Server2003。我编辑了帖子以显示该内容。
内森·帕尔默

这些完全免费,共享软件还是开放源代码中的任何一个?
马斯洛,2010年

希望您能以这种方式向我们更新失败,运行和未决的内容。给我好主意。
卫斯理2010年

2
没问题。我认为这将是很好的信息,因为我觉得我们正在处理的公司通常每天都不使用的文件数量。另外,我刚刚更新了免费和付费类别。
内森·帕尔默

Answers:


6

假设您的操作系统是Windows ...

无论采用哪种方式进行切片,对数百万个文件进行制表总是需要很长时间,并且会受到磁盘本身的I / O的限制。我建议使用TreeSize Professional。或者也许是SpaceObServer。您也可以尝试使用TreeSize的免费版本。


我同意。但是我还没有尝试过这两个产品,所以我来看一下。
内森·帕尔默

5

绝对可以尝试WinDirStat:通过将每个文件描绘成按比例绘制的矩形(按文件类型进行颜色编码),可以提供磁盘使用情况的绝佳可视化。单击可视化中的任何项目,您将在目录树中看到它。

标准的32位版本限制为1000万个文件和2 GB的RAM使用,但是源代码将作为64位应用程序成功构建。在这种特定情况下,有关服务器仅具有2GB RAM的事实可能会出现问题,但是大多数具有如此大量文件的服务器将具有更多RAM。

编辑1:我很遗憾地发现,当在包含数百万个文件的4TB卷上进行测试时,WinDirStat Portable在索引了约650万个文件后崩溃了。如果驱动器包含6+百万个文件,则可能无法解决原始问题。

编辑#2:完整版WinDirStat崩溃,使用1000万个文件和1.9GB

编辑#3:我与WinDirStat开发人员联系,他们:(1)他们同意这是由于x86体系结构的内存使用限制所致,并且(2)提到可以将其编译为64位而没有错误。很快。

编辑#4:WinDirStat的64位版本的测试成功。在44分钟内,它索引了1,140万个文件并消耗了2.7 GB的RAM。


可能值得尝试常规版本,因为可移植环境可能会产生意外的限制。我无法测试自己。windirstat.info
约翰·

确实,普通版本的文件消耗超过10百万个文件,而RAM使用量仅为1.9GB。我怀疑它无法分配> 2GB。我很惊讶它使用了如此多的RAM(每个文件将近200个字节),但是,我又长大了一个时代,每个字节都比今天贵得多……
Skyhawk

我经常使用WinDirStat。不幸的是,当您进入大量文件时,它只是不能削减它。
内森·帕尔默

我很想知道WinDirStat上的开发人员是否回来了。RAM对我来说是32位还是64位的约束。
内森·帕默

1
没有正式的版本,但是我可以给您发送一个非正式的版本-显然,如果您没有Visual Studio,则要自己发布它会很棘手!(my.name@gmail.com与我联系)
天鹰


3

+1为TreeSize产品,但是...

您关于“未清理足够空间”的句子使我感到奇怪:您是否会用完NTFS MFT保留空间?如果文件系统获取的MFT空间超过了最初分配的MFT空间,则它不会返回到常规文件空间,也不会在碎片整理操作中显示。

http://support.microsoft.com/kb/174619

“具有少量相对较大文件的卷首先耗尽了未保留的空间,而具有大量相对较小文件的卷首先耗尽了MFT区域空间。在任何一种情况下,当一个区域或分区的MFT都开始发生碎片化。如果未保留的空间已满,则从MFT区域开始分配与MFT竞争的用户文件和目录空间;如果MFT区域已满,则从其余部分分配用于新MFT条目的空间。磁盘,再次与其他文件竞争。”


看起来似乎值得检查。不幸的是,我们无法看到MFT大小,因为如果没有CHKDSK不会进行碎片整理,并且CHKDSK当前失败并显示“发生了未指定的错误”。
内森·帕尔默

3
  1. 光盘\
  2. 目录/ s> out.txt
  3. of!魔术发生了;或出现Perl黑客
  4. 结果!

说真的 我已经用5或600万个文件完成了此操作;不确定您要查找的是什么,但是好的脚本语言会吃光了。


如此...在步骤#3中会发生什么。
内森·帕尔默

您可以发布更多您需要的信息吗?最大的文件?最大的目录?您需要日期/时间信息吗?是一次性需求还是经常性需求?
SqlACID

现在是一次。我需要知道最大的目录(目录+子目录),但是在该信息有效之前,我需要进入几个目录。然后,我需要按日期对文件进行分类,以便可以查看最新文件还是旧文件。
内森·帕尔默

3

我通常不是Windows用户,但是我知道Cygwin的存在。:-)

如果效果足够好,类似

du -m /your/path | sort -nr | head -n 50

也许在Cygwin

du C:\ | sort -nr | head -n 50

无论如何,这些应该可以打印出50个最大的目录(大小以兆字节为单位)。


2

我发现了Spacemonger的一些问题,并且在寻找实用程序时可以轻松地从USB记忆棒转移或运行它- 事实证明,Space Sniffer用途非常广泛,可以轻松处理数TB的卷。


多TB的卷有多少个文件?似乎我们的主要问题不是使用了多少空间,而是程序可以处理多少文件。多数人窒息于一千万。
内森·帕尔默

我的服务器上没有超过几百万个文件,因此我无法自信地回答您的1000万个文件的问题-我唯一的建议是,使用这些工具,您可以设置可视化的目录深度-找到快乐介质,然后深入所需的文件夹,这也应该节省时间进行可视化。




0

从脑海中回想起mft表,我似乎想起了原始的开源版本jkdefrag提供了非常精确的磁盘视图,包括mft区域的差异色。我想我以前曾用过一次经验法则来估计mft的大小和碎片。

也不在乎chdsk。

可以尝试吗?


我试了一下。当我运行分析时,大多数其他程序都遭受同样的命运。内存中存储的文件/文件夹太多。
内森·帕尔默

很抱歉阅读。似乎是平台问题。我还有一个建议:无论如何都要镜像磁盘(位图,映像软或硬件镜像),请断开镜像并将副本放在其他平台上进行取证。linux / nix。这花费了足够的时间来保证镜像驱动器的成本,该成本与您投入的工作时间有关。
deploymonkey


0

我使用过磁盘使用率分析器 -Linux上的Baobab,使用Windows服务器上的远程扫描功能。我不知道这是什么限制。

Fedora LiveCD包含Baobab。在局域网中的任何计算机上启动它。

所有这些都是免费的-就像啤酒和演讲一样。也用于商业用途。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.