none
关于08R2 上存储大量小文件的时候。占用大量硬盘空间。但删除文件后硬盘空间释放出来的容量却很少 RRS feed

  • 问题

  • 我的问题环境是这样子的。

    我这里有几个系统。系统所产生的文件都很小。而且很多。磁盘格式为NTFS 格式。最小单元为4K ,但我系统产生的文件很多都比4 k 要小。所以

    就出现了。文件容量其实不大。但是占用磁盘空间却很多。 现在问题来了。我把这些文件删掉后。发现这些文件所占用的空间并没有释放出来。比

    如说。我的文件大小只有20 M 但是占用磁盘空间却有2G ,在我删除了这个20M 的文件时。这些文件所占用的2G 磁盘空间并不见释放出来。

    请问。这种问题有什么方法可以解决吗?除了重新格式化之外。

    2014年7月29日 1:48

答案


  • 你好,


    这个问题是由NTFS文件系统引起的。

    创建和格式化 NTFS 卷时,将创建 NTFS 图元文件。其中的一个图元文件称为主文件表 (MFT)。它在创建时非常小(大约 16 KB),但将随着在卷上创建文件和文件夹而增大。创建文件时,该文件会作为文件记录段 (FRS) 输入 MFT。FRS 的大小始终是 1024 字节 (1 KB)。在将文件添加到卷中时,MFT 将增大。但是,当删除文件时,相关的 FRS 将被标记为可供再次使用,但 FRS 和相关 MFT 分配总数保持不变。这就是在您删除大量文件后仍不能重新获得由 MFT 使用的空间的原因。

    更多信息请参考下面的KB。
    如何找出并纠正 NTFS 卷上的磁盘空间问题
    http://support.microsoft.com/kb/814594/zh-cn

    你可以在powershell,运行如下命令查看你的MFT占用的空间。
    $drive = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = 'c:'"   c代表你所查看的盘符。
    $report = $drive.DefragAnalysis()
    $report.DefragAnalysis


    希望可以帮助到你。

    2014年8月6日 9:25
    版主

全部回复

  • 通过磁盘清理或者 CHKDSK 可以找回这种浪费的空间。

    如果有机会重新格式化,可以在格式化选项中修改最小单元以减少这种问题。


    Alexis Zhang

    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Anson_CN>;

    | 我的问题环境是这样子的。
    | 我这里有几个系统。系统所产生的文件都很小。而且很多。磁盘格式为NTFS 格式。

    2014年7月30日 0:12
  • 磁盘清理和chkdsk 这两个 包括disk cleanup 都做过了。依然没能释放出应有的容量呢!

    还有其它的解决方案吗?谢了。

    2014年7月30日 3:10
  • 你好,

    你是如何知道20M文件占用了2G空间的。通过右击相应文件夹,查看其属性的“大小“和”占磁盘空间“么?

    如果是这种情况,磁盘清理会清除占用过的磁盘簇。请在删除文件后,参考下面的文档来进行磁盘清理。
    驱动器的常规属性和 cleanmgr.exe 磁盘清理选项不是默认情况下出现在 Windows Server 2008 或 Windows Server 2008 R2
    http://technet.microsoft.com/zh-cn/library/ff630161(v=ws.10).aspx

    另外,2G空间的占用可能由其他文件导致,如果磁盘清理无法实现空间释放,请参考Alexis Zhang的意见修改最小单元并进行格式化操作。

    希望可以帮助到你。

    2014年7月30日 9:47
    版主
  • 是的。就是在那里看到的。

    cleanmgr.exe 这个命令我已经做过了。还是没有效果。空间还是没有释放出来。

    格式化那是不能的。只有一个C盘。除了格式化。还有没有其它呢?。。。其它这情况很容易就可以做个lab 出来的。

    2014年7月30日 11:47
  • 如果是这样的话,你确定这 2GB 的空间是浪费掉的吗?会不会有什么文件还在真正占用这些空间?

    在文件夹选项中设置显示受保护的系统文件、显示隐含的文件夹文件,包括 Recycled、System Volume Information 等所有隐藏的文件夹,把所有数据加起来,显示多大?


    Alexis Zhang

    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Anson_CN>;

    | 磁盘清理和chkdsk 这两个 包括disk cleanup 都做过了。依然没能释放出应有的容量呢!
    | 还有其它的解决方案吗?谢了。

    • 已标记为答案 Anson_CN 2014年7月31日 1:18
    • 取消答案标记 Anson_CN 2014年7月31日 1:18
    2014年7月31日 0:07
  • 在磁盘那里真的是少了这些空间的。除了删除那个文件外。没有其它的操作。其它的文件怎么会无故占用这些空间呢。

    在文件夹选项中设置显示受保护的系统文件、显示隐含的文件夹文件,包括 Recycled、System Volume Information 等所有隐藏的文件夹,把所有数据加起来,显示多大

    对于这些。我也看过了。都是正常的大小 。也就是说。在删除之前这些数据加起来是多少。删除之后加起来也还是多少。没有太大的变化。

    2014年7月31日 1:21
  • 现在所有这些隐含文件加在一起一共有多大?是一个远远小于 2GB 的大小,但是分区属性显示的已用空间还是 2GB 加上这些文件的大小?


    Alexis Zhang

    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Anson_CN>;

    | 在磁盘那里真的是少了这些空间的。除了删除那个文件外。没有其它的操作。其它的文件怎么会无故占用这些空间呢。
    | *在文件夹选项中设置显示受保护的系统文件、显示隐含的文件夹文件,

    2014年7月31日 23:51
  • 我在做删除动作前就已经计算过所有的隐藏文件大小。。跟删除后的所有隐藏文件大小是一样的。没有变化
    2014年8月1日 0:58
  • 那么现在实际占用的总大小应该是多少呢?如果再写入一个 2GB 的数据,会即时显示多占用 2GB 么?


    Alexis Zhang

    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Anson_CN>;

    | 我在做删除动作前就已经计算过所有的隐藏文件大小。。跟删除后的所有隐藏文件大小是一样的。没有变化
    |

    2014年8月3日 0:14
  • 如果再写入一个2GB的数据。会即时显示占用就是2GB ,.其实这个环境很容易做出来了。你可以建大量的1k的文本文件 。再复制。就很容易出现我说的这个情况了。
    2014年8月4日 3:01
  • 我还真试不出你说的情况。因为写入的数据个体小于簇而产生磁盘空间浪费是有的,但基本是可以找回的。


    Alexis Zhang

    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Anson_CN>;

    | 如果再写入一个2GB的数据。会即时显示占用就是2GB ,.其实这个环境很容易做出来了。你可以建大量的1k的文本文件 。再复制。就很容易出现我说的这个情况了。

    2014年8月5日 0:17

  • 你好,


    这个问题是由NTFS文件系统引起的。

    创建和格式化 NTFS 卷时,将创建 NTFS 图元文件。其中的一个图元文件称为主文件表 (MFT)。它在创建时非常小(大约 16 KB),但将随着在卷上创建文件和文件夹而增大。创建文件时,该文件会作为文件记录段 (FRS) 输入 MFT。FRS 的大小始终是 1024 字节 (1 KB)。在将文件添加到卷中时,MFT 将增大。但是,当删除文件时,相关的 FRS 将被标记为可供再次使用,但 FRS 和相关 MFT 分配总数保持不变。这就是在您删除大量文件后仍不能重新获得由 MFT 使用的空间的原因。

    更多信息请参考下面的KB。
    如何找出并纠正 NTFS 卷上的磁盘空间问题
    http://support.microsoft.com/kb/814594/zh-cn

    你可以在powershell,运行如下命令查看你的MFT占用的空间。
    $drive = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = 'c:'"   c代表你所查看的盘符。
    $report = $drive.DefragAnalysis()
    $report.DefragAnalysis


    希望可以帮助到你。

    2014年8月6日 9:25
    版主