web-dev-qa-db-ja.com

extパーティションをデフラグしますか?

なぜext2/3/4をデフラグする必要がないのですか?断片化はまったくありませんか?

10
uray

最新のファイルシステム、特にマルチユーザーやマルチタスクのユースケースで効率的に設計されたファイルシステムは、ファイルシステムがほぼ満杯になるまでデータを断片化しないというかなりの仕事をします(「ほぼ満杯」の正確な数値はありません「マークは、ファイルシステムの大きさ、ファイルサイズの分布、アクセスパターンによって異なります。85%から95%の数字が一般的に引用されています)、ファイルの作成と書き込みのパターンが異常であるか、ファイルシステムが非常に古いので、多くの「アクション」を見てきました。これには、ext2/3/4、reiser、btrfs、NTFS、ZFSなどが含まれます。

現在、ext3または4をデフラグするカーネル/ファイルシステムレベルの方法はありません(詳細については、 http://en.wikipedia.org/wiki/Ext3#Defragmentation を参照してください)。 ext4は、まもなくオンラインでの最適化を実現する予定です。

個々のファイルまたはファイルのセットをコピー/書き換えすることでデフラグを試みるユーザーランドツール( http://vleu.net/shake/ などのウィキペディアの記事に記載されているもの)があります-if十分な大きさの空き領域のブロックがあり、これにより通常、ファイルに連続したブロックが与えられます。ただし、これはファイルが互いに近くにあることを保証するものではありません。そのため、移行した大きなファイルのペアに対してシェイクを実行すると、2つのファイルがデフラグされますが、ディスク上の互いに近くにはありません。マルチユーザーファイルシステムでは、ドライブヘッドがさまざまなユーザーのニーズに対応するためにあらゆる場所で反転しているため、ファイルの相互の局所性はそれほど重要ではありません(ファイル自体の断片化ほど重要ではありません)。断片化されていないファイル間の参照の局所性がもたらす遅延ボーナスを排除しますが、ほとんどがシングルユーザーシステムでは、測定可能な利点をもたらす可能性があります。

時間の経過とともにひどく断片化され、現在かなりの空き領域があるファイルシステムがある場合、そのすべてのファイルに対してshakeのようなものを実行すると、探している効果が得られる可能性があります。もう1つの方法は、すべてのデータを新しいファイルシステムにコピーし、元のファイルを削除してから、再度コピーすることです。これは、shakeとほぼ同じように役立ちますが、大量のデータの場合はより高速になる可能性があります。

少量の断片化については、心配する必要はありません。通常の操作のいくつかのライフタイムで(より効率的なディスクアクセスのために)節約できるよりも多くの時間をデフラグプログレスバーの監視に費やしている人々を知っています!

10
David Spillett

ディスクがいっぱいになりすぎない限り、断片化はあまりありません(したがって、回避できる場合は、ディスクをいっぱいにしすぎないでください)。

0
JanC