ディスク領域を節約するために、インストールした VMware vSphere Client を圧縮するのがよい考えかもしれないと考えました。これは、ほとんど使用しないからです。
空きディスク容量にはまったく逆の効果があることに驚きました。さらに調べてみると、フォルダーの圧縮に関連していることがわかりましたHelp
。ディスク容量の減少はフォルダーのサイズには反映されません。
別のプログラムが偶然にディスク領域を占有しないように、圧縮/解凍サイクルを 3 回繰り返しました。フォルダーに多数の小さなファイル (≈ 30k) が含まれていることは注目に値します。
なぜそうなるのでしょうか?また、他のフォルダを見つけるにはどうしたらいいのでしょうか?減圧するディスク容量を節約するには?
圧縮なし:
圧縮あり:
答え1
提供されたフォルダー サイズのスクリーンショットに関する背景知識を少し紹介します。
非圧縮
予想どおり、小さなファイルが多数あると、オーバーヘッドが大きくなります。ハード ディスクは、特定のブロック サイズ (NTFS の場合はデフォルトで 4 KB) でパーティション分割されます。
各ファイルは4KBの倍数を割り当てる必要があるため、1KBのファイルでも3.5KBのファイルでも、どちらも4KBのスペースを占有します。13KBのファイルの場合は、ドライブ上で16KBを使用します。「サイズ」と「ディスク上のサイズ」の違いは、ブロック内の未使用スペースによって生じるオーバーヘッドです。クラスターのヒント。
圧縮
圧縮後、「サイズ」は、ネットデータ量はまったく変わっていないため、同じままです。ただし、圧縮により、合計サイズを約 130 MB 削減できました。実際には、ここでもオーバーヘッドが適用されるため、さらに大きくなります。したがって、圧縮によって実際にそのフォルダー内のスペースがいくらか節約され、それがフォルダー サイズにも表示されます。
さて、Cドライブの空きディスク容量が減った場合の動作についてですが、これには複数の理由が考えられます。理解しておくべきことの1つは、空きディスク容量は常に
<Disk size> - <total size of all files>
これは、スペースを消費するメタデータ (VSS スナップショット、システム復元ポイント、MFT など) が大量にあるためです。
単一ファイルの圧縮中、NTFS は圧縮が完了するまで元のファイルを一時的に保持します。これは、コンピュータがクラッシュした場合でも、有効なバージョンのファイルが残るようにするためです。ただし、これは一時的なものに過ぎません。しかし、すべては NTFS メタデータを指しているため、この状態になります。
結果をより正確に検証するには、次の操作を実行できます。
- 圧縮されていないフォルダから始める
- 各ボリュームのシステム保護を無効にする(コンピュータのプロパティ/システム保護)
- 同じダイアログで各ボリュームの復元ポイントを削除します
- 一時ファイルを削除するには、ボリュームCのプロパティで「ディスククリーンアップ」を使用します。
- 空きディスク容量に注意してください
- フォルダを圧縮する
- コンピュータを再起動してください
- ディスククリーンアップを再度使用する
- ディスクの空き容量を確認してください
理論的には空き容量の増加が見られるはずです
答え2
最近、同様の問題を調査したところ、圧縮ファイルはファイルごとに少なくとも 4 キロバイトのスペースと、4 KB クラスター サイズの NTFS の 1 つの「圧縮ユニット」のサイズである 64 キロバイトの一時スペースを占有することがわかりました。blogs.msdn.com の記事また、ファイルが圧縮されると、ディスク領域が 1 つの完全な CU を保持するために割り当てられ、未定の時間に解放されることも言及されています。これが、一時的ではありますが、5 GB の損失が発生している理由です (再起動すると、間違いなくこの損失は修正されるはずです。他の手段でも修正されるはずですが、デフラグは試しましたが失敗しました)。割り当てられている容量は明らかにかなり大きいようです (64kb*(31048+582) = 2072903680 または 1.93 GB)。しかし、これは、NTFS には、生データにコミットするのに時間とプロセッサ ユニットを要するトランザクションがあり、そのプロセスが終了すると、圧縮によって解放された 5 GB と 150 MB の容量がすべて戻されるため、説明がつきます。
要約すると、大量のファイルを圧縮すると、一時的にスペースが失われるだけです。ただし、それらのファイルが頻繁に変更される場合、変更されたコンテンツが書き込みアクションの前にクラスターが占めていたスペースに収まるように圧縮できない場合に備えて、それらのファイルの非圧縮データを保持するためにディスク領域が割り当てられます。
答え3
私も同じ現象を経験しました:
サーバー移行で、古い Windows Server 2012R2 のドライブのデータ フォルダー (圧縮フォルダー 2 つを含む) を、同じサイズの新しい Windows Server 2016 Datacenter ドライブにコピーしました。このドライブでは、コピー プロセスの前にフォルダー構造を作成し、これらの 2 つのフォルダーに圧縮フラグを設定しました。コピー中にディスク領域が不足し、どこを見ても 20 GB のうち 3 GB しか使用されていませんでしたが、ドライブ自体には 19.x GB が使用されていると表示されています。同僚から圧縮フラグを削除するように言われ、奇跡的に失われた 17 GB が再び現れました。
その後、あなたの記事を読んで、フラグを再適用して再起動してみることにしましたが、おかしなことに、今回は使用済みディスク容量は増加しませんでした。
Windows Server 2016 では (おそらくずっと前から)、ファイルが圧縮フォルダーにコピーされたときに (既存のファイルに圧縮フラグが適用されたときではなく) 内部で生成された一時ファイルが適切にクリーンアップされないという問題があると思います。
答え4
補足: 上記の説明に加えて、アプリケーション フォルダーには、圧縮がうまくいかないファイル (すでに大幅にデータ削減されたメディア形式 (jpeg 画像、ビデオ ファイル、mp3 オーディオなど)、すでに圧縮されたファイル (最近の多くのデータ形式は ZIP アーカイブとして構築されています)、実際にランダム データまたはランダム データに似たデータを含むファイル、暗号化されたファイルなど) が含まれる場合があります。これにより、圧縮によって節約されたデータよりも、圧縮された内容の記録に使用されるデータが多くなる可能性があります...