大きなファイルの削除に時間がかかるのはなぜですか?


30

私の理解ではrm、ファイルで実行すると、単にリンクが解除され、ファイルシステム内の空きスペースとしてマークされます。1つのファイルの削除には常にほぼ同じ時間がかかります(つまり、削除速度はファイルのサイズではなくファイルの数に比例します)。

では、なぜ15 GBファイルを削除するのに1分以上かかるのは簡単rm file.tar.gzですか?


5
どのファイルシステム?
シェーンマッデン

8
多くのファイルシステムでは、空き領域の各「ブロック」に空きの「マーク」を付ける必要があります。大きなファイルにはより多くのブロックがあります。ただし、これはすべてのファイルシステムに当てはまるわけではありません。
クリスS

@ShaneMadden良い質問; 今はext4ですが、他のext#でも同様です。
トムマーセナル

そのため、すべてのファイルに独自の仮想化ファイルシステムを用意し、inodeを盲目的に消去できるようにします。<JEST>
-thinice

1
この場合、どのファイルシステムのパフォーマンスが向上しますか?私は今、ポータブルドライブを使用して大きなVMディスクをあるマシンから別のマシンに移動しています。
モトボイ

回答:


39

単一のブロックのリンクを解除するには一定の時間がかかりますが、単一のブロックのサイズを超えるファイルは、リンクされた複数のブロックで構成され、ファイルが大きいほどリンクされるブロックの量が多くなります。


14
<BSD Zealot> mumble mumble UFS mumble mumble ソフトアップデート mumble mumble削除物をより速くmumble mumbleパンケーキ!</ BSD
Zealot

XFSは大きなファイルを非常に迅速に削除しますが、多数の小さなファイルは非常にゆっくりと削除します。
アンドリュー

4
1つのファイルは常に1つのiノードのみを使用します。複数のデータブロックを使用します。
サイモンリヒター

2
それらをすべて支配する1つのブロック、それらを見つけるための1つのブロック、それらすべてをもたらし暗闇の中でそれらを縛る1つのブロック。
Rqomey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.