為什麼NTFS壓縮會佔用大量空間?

為什麼NTFS壓縮會佔用大量空間?

為了節省一些磁碟空間,我認為壓縮我安裝的 VMware vSphere Client 可能是個好主意,因為我幾乎從不使用它。

我驚訝地發現它對可用磁碟空間產生了完全相反的影響。我進一步追踪,發現與壓縮Help資料夾有關。磁碟空間的損失不會反映在資料夾大小中。

我重複了壓縮/解壓縮循環三次,以確保另一個程式不會巧合地佔用磁碟空間。值得注意的是,該資料夾包含大量小檔案(約 30k)。

為什麼會這樣?解壓縮以節省磁碟空間?


沒有壓縮:

未壓縮的資料夾大小 未壓縮的可用空間

壓縮時:

壓縮後的資料夾大小 壓縮後的可用空間

答案1

關於您提供的資料夾大小螢幕截圖的一些背景知識:

未壓縮

正如預期的那樣,許多小文件會產生大量開銷。您的硬碟會以一定的區塊大小進行分割 - NTFS 預設為 4KB。

每個文件必須分配 4KB 的倍數,這意味著無論您有 1KB 還是 3.5KB 文件,都將佔用 4KB 的空間。如果您有一個 13KB 的文件,它將在您的磁碟機上使用 16KB。 「大小」和「磁碟上的大小」之間的區別是區塊中未使用空間引入的開銷,即所謂的集群提示

壓縮的

壓縮後「大小」仍然相同,淨資料量根本沒有改變。然而,壓縮能夠將總大小減少約 130MB。事實上甚至更多,因為這裡的開銷也適用。因此,壓縮實際上節省了該資料夾中的一些空間,這也顯示在資料夾大小中。

現在,關於您在磁碟機 C 上的可用磁碟空間減少時看到的行為:這可能有多種原因。需要理解的一件事是可用磁碟空間始終小於

<Disk size> - <total size of all files>

這是因為有大量元資料也會佔用空間(VSS 快照、系統還原點、MFT 等)。

在壓縮單一文件期間,NTFS 將暫時保留原始文件,直到壓縮完成。這是為了確保在電腦崩潰時您仍然保留該檔案的有效版本。然而,這應該只是暫時的。儘管如此,一切都指向 NTFS 元資料導致了這種情況。

為了更準確地驗證結果,您可以執行以下操作:

  • 從未壓縮的資料夾開始
  • 停用每個磁碟區的系統保護(電腦屬性/系統保護)
  • 在同一對話方塊中刪除每個磁碟區的還原點
  • 使用磁碟區 C: 屬性中的「磁碟清理」來刪除暫存文件
  • 注意可用磁碟空間
  • 壓縮資料夾
  • 重新啟動你的電腦
  • 再次使用磁碟清理
  • 檢查磁碟上的可用空間

理論上您應該能夠看到可用空間的增加

答案2

最近研究了一個類似的問題,我還可以說,一個壓縮檔案每個檔案至少需要4 KB 的空間,以及64 KB 的臨時空間,這是簇大小為4 kb 的NTFS 的一個「壓縮單元」的大小。blogs.msdn.com 上的文章也提到,當檔案被壓縮時,磁碟空間被分配來容納一個完整的CU,並在不確定的時間被釋放。這應該是您遇到 5GB 丟失的原因,儘管是暫時的(重新啟動肯定可以修復該丟失,其他一些方法也可以做到這一點,但不是碎片整理 - 已經嘗試過但失敗了)。顯然,分配的內容似乎要大得多(64kb*(31048+582) = 2072903680 或1.93 GB),但這是可以解釋的,因為NTFS 的事務需要時間和處理器單元才能提交到原始資料中,並且過程何時會提交完成後,您將獲得所有 5GB 加上因壓縮而釋放的 150MB 空間。

總而言之,如果壓縮大量文件,您只會暫時損失空間。但是,如果這些檔案經常被修改,您的磁碟空間將被分配來保存這些檔案的未壓縮數據,以防它們更改的內容無法壓縮以適應寫入作業之前叢集佔用的任何空間。

答案3

我也有同樣的現象:

伺服器遷移,我將舊Windows Server 2012R2 磁碟機的資料資料夾(帶有2 個壓縮資料夾)複製到了大小相同的較新Windows Server 2016 Datacenter 磁碟機上,我在其中建立了資料夾結構並在這兩個資料夾上設定了壓縮標誌之前的複製過程。在複製過程中,我耗盡了磁碟空間,在我看來,僅使用了 20GB 中的 3GB,但磁碟機本身告訴我使用了 19.x GB。一位同事告訴我刪除壓縮標誌,丟失的 17GB 奇蹟般地又出現了。

然後我讀了你的文章並決定重新應用該標誌並嘗試重新啟動,但有趣的是這次使用的磁碟空間並沒有增加。

我猜 Windows Server 2016 中可能存在一個問題(也許從那時起),當檔案複製到壓縮資料夾時(與將壓縮標誌應用於現有檔案時相反),內部產生的臨時檔案無法正確清理。

答案4

附加:除了上面的解釋之外,應用程式資料夾還可以包含壓縮效果不佳的檔案 - 已經強烈資料縮減的媒體格式(jpeg 圖像、視訊檔案、mp3 音訊...)、已經壓縮的檔案(很多如今的資料格式被建構為ZIP 檔案! )、包含實際隨機資料或類似隨機資料的檔案、加密檔案- 這可能會導致用於記錄壓縮內容的資料多於透過壓縮保存的資料。

相關內容