Linuxユーザーの場合、Linuxファイルシステムを最適化する必要はないと聞いたことがあるでしょう。 Linuxディストリビューションには、ディスクデフラグユーティリティが付属していないことにも気付くでしょう。しかし、それはなぜですか?
Linuxファイルシステムが通常の使用でデフラグを必要としない理由(およびWindowsファイルシステムがデフラグを必要とする理由)を理解するには、断片化が発生する理由と、LinuxファイルシステムとWindowsファイルシステムの動作の違いを理解する必要があります。
断片化とは
多くのWindowsユーザーは、経験の浅いユーザーであっても、ファイルシステムを定期的に最適化することでコンピューターの速度が上がると信じています。多くの人が知らないのは、これがなぜなのかということです。
つまり、ハードディスクドライブにはいくつかのセクターがあり、各セクターに小さなデータを含めることができます。ファイル、特に大きなファイルは、さまざまなセクターにまたがって保存する必要があります。さまざまなファイルをファイルシステムに保存するとします。これらの各ファイルは、連続するセクターのクラスターに保存されます。後で、最初に保存したファイルの1つを更新して、ファイルのサイズを大きくします。ファイルシステムは、ファイルの新しい部分を元の部分のすぐ隣に保存しようとします。残念ながら、中断されない十分なスペースがない場合は、ファイルを複数の部分に分割する必要があります。これはすべて透過的に行われます。ハードディスクがファイルを読み取るとき、そのヘッドは、セクターの各チャンクを読み取るために、ハードドライブ上の異なる物理的な場所の間をスキップする必要があります。これにより、処理速度が低下します。
デフラグは、ファイルのビットを移動して断片化を減らし、各ファイルがドライブ上で連続していることを確認する集中的なプロセスです。
もちろん、これは、可動部品がなく、デフラグすべきではないソリッドステートドライブの場合とは異なります。SSDをデフラグすると、実際には寿命が短くなります。また、最新バージョンのWindowsでは、ファイルシステムの最適化について心配する必要はありません。Windowsがこれを自動的に行います。デフラグのベストプラクティスの詳細については、次の記事を参照してください。
HTGの説明:本当にPCをデフラグする必要がありますか?
Windowsファイルシステムのしくみ
Microsoftの古いFATファイルシステム(Windows 98とMEでデフォルトで最後に表示されますが、現在もUSBフラッシュドライブで使用されています)は、ファイルをインテリジェントに配置しようとはしません。ファイルをFATファイルシステムに保存すると、ディスクの先頭にできるだけ近い場所にファイルが保存されます。 2番目のファイルを保存すると、最初のファイルの直後に保存されます。元のファイルのサイズが大きくなると、常に断片化されます。彼らが成長するための部屋は近くにありません。
Windows XPおよび2000を搭載した消費者向けPCに採用されたMicrosoftの新しいNTFSファイルシステムは、少しスマートにしようとしています。ドライブ上のファイルの周囲により多くの「バッファ」空き領域が割り当てられますが、Windowsユーザーなら誰でもわかるように、NTFSファイルシステムは時間の経過とともに断片化されます。
これらのファイルシステムの動作方法のため、最高のパフォーマンスを維持するには、ファイルを最適化する必要があります。 Microsoftは、最新バージョンのWindowsでデフラグプロセスをバックグラウンドで実行することにより、この問題を軽減しました。
Linuxファイルシステムのしくみ
Linuxのext2、ext3、およびext4ファイルシステム(ext4はUbuntuおよび他のほとんどの現在のLinuxディストリビューションで使用されているファイルシステム)は、よりインテリジェントな方法でファイルを割り当てます。 Linuxファイルシステムは、ハードディスク上で複数のファイルを互いに近くに配置する代わりに、ディスク全体に異なるファイルを分散させ、それらの間に大量の空き領域を残します。ファイルが編集されて拡張する必要がある場合、通常、ファイルを拡張するための十分な空き領域があります。断片化が発生した場合、ファイルシステムは、デフラグユーティリティを必要とせずに、通常の使用で断片化を減らすためにファイルを移動しようとします。
このアプローチの仕組みにより、ファイルシステムがいっぱいになると、断片化が見られるようになります。 95%(または80%)がいっぱいになると、断片化が見られるようになります。ただし、ファイルシステムは、通常の使用で断片化を回避するように設計されています。
Linuxでの断片化に問題がある場合は、おそらくより大きなハードディスクが必要です。実際にファイルシステムを最適化する必要がある場合は、おそらく最も簡単な方法が最も信頼性があります。パーティションからすべてのファイルをコピーし、パーティションからファイルを消去してから、ファイルをパーティションにコピーして戻します。ファイルをディスクにコピーして戻すと、ファイルシステムはファイルをインテリジェントに割り当てます。
Linuxファイルシステムの断片化は、 fsckコマンド —出力で「非連続iノード」を探します。