2011年11月25日の日記です


しつこくデフラグ話  2011-11-25 10:51:13  コンピュータ

別に誰に向かって書いているわけでもないんだけどさ。


2ch なんかのデフラグ関係の話題を読んでいると、デフラグ「すべき」派も「すべきでない」派も、ちゃんと理解しないで言っている節が感じられるもので、ついつい書きたくなってしまう。



Linux にはデフラグが必要ない、という人がいるが、そんなことはない。

デフラグツールなんてなくても、全ファイルを別のディスクにコピーすれば同じこと、という人がいるが、そんなことはない。


現代的な意味において、デフラグは「断片化の解消」よりも、「より高速な外周に、よく使うデータを集める作業」だということは、前回の日記に書いた。




Linux の ext3 は、ファイルの断片化を起こしにくい構造をとっている。これは事実。

でも、それは「ファイルの間に十分な隙間を開ける」ことで行われている。

もし断片化がおきそうなら、より大きな隙間を探してファイルを移動するので、ディスク容量に余裕があるうちは断片化は起こらない。


結果として、外周部分でもデータはスカスカ。使う頻度も特に考慮されない。

ext3 がデフラグを起こしにくい、ということをもって「Windows の NTFS は設計が悪い」という人もいるが、断片化を問題とするか、速度の速い外周を活かそうとするかの思想の違いであって、善し悪しではない。



NTFS では、外周を有効に使う代わりに、断片化を起こしやすい。

そこで、OS自体にデフラグを効率的に行うための仕組みを設けている。


だから、システムを起動して作業をしながらでも、バックグラウンドでデフラグができる。

実はこれはすごいことで、DOS 時代の(Windows98までの時代の)FAT では、システムを停止しないとデフラグできなかった。


おかげで、Windows にはシステム標準でもデフラグがついているし、市販ソフトも、フリーソフトもたくさんある。


一方、Linux にはこのような仕組みはない。

外周は有効に使えないし、断片化が起こってしまった際に解消する仕組みもない。


システムを起動したまま、どころか、停止したとしてもデフラグするためのツールは準備されていない。

ext3 の上位互換である ext4 には、デフラグのための仕組みが備えられた。でも、デフラグツールは開発中で、まだ提供されていない。

(開発途中版を使うことはできるけど、大事なファイルシステムに、バグがあるかもしれないデフラグツールを使いたい人はいるだろうか?)



なので、Linux ユーザーがいう「デフラグの必要がない」は、やりたくてもできないだけ。

外周を十分に使えないから、NTFS よりも遅い。


もっとも、NTFS を長年デフラグなしで使うと、断片化によって極端に性能劣化する。

ext3 ではそのようなことは起こりにくい。(起こりえない、ではない)




で、Linux ユーザーの窮余の策としては「ファイルを全部別ディスクにコピー」だ。

これでデフラグと同じ効果がある、とする。


Windows ユーザーでも、デフラグするとハードディスクの寿命が縮む、と信じている人は同じことを言う。


でも、この方法は、断片化解消にはなるけど、よく使うファイルを外周に再配置することにはならない。

最初に書いたように、現代的な意味でのデフラグの肝は、外周を使う再配置にある。


だから、ディスク丸ごとコピーではデフラグの代わりにならない。


ちなみに、ディスクを丸ごとコピーすれば、ディスクは動作し続けて熱を持つ。

デフラグがハードディスクに悪い、というのであれば、丸ごとコピーも同じようにハードディスクに悪い。

(もっとも、デフラグよりもアクセス時間は短いはずだ。その意味ではハードディスクへの悪影響を最低限に抑えられる。

 理由は、「空の領域に移す」という、究極的に広い作業領域が与えられている上、断片化の解消だけが目的で、再配置が行われないから。)




ちなみに、僕 Linux 使ってますよ。盲信者ではないだけで。




ところで、断片化していなければ読み込み中のシークが発生しない、というのは真実ではない。

不良セクタがあれば、それはハードディスク最内周に準備された「代替領域」に書き込まれるから。


不良セクタの存在は、ハードディスク内で解決されてしまうので、OS からは見えない。

「連続領域に並べた」と思っていても、実は断片化している、という状態になるし、この際「外周に配置した」つもりでも、実は内周に置かれていたりもする。


もっとも、通常のセクタと比較して、不良セクタの存在する割合は非常に低いので、「確率問題として」普通は無視する。



SSD に関しては、はっきり言って知らん。僕は SSD 使ってないので。


XP では、SSD を HDD とみなして動作していたので、デフラグしないと性能劣化した、という。

(SSD の扱えるデータブロックよりも、一般的な HDD の扱うデータブロック(セクタ)のほうが小さい。

 このため、SSD の1ブロックに、HDD の数ブロックを同居させることになる。

 ここで「断片化」がおきていると、1ファイルの書き換えに際して、関係ないファイルも一緒に処理しなくてはならなくなり、結果的に速度が低下する。)


Windows7 では、SSD はちゃんと SSD と認識して動作する。

XP で見られた「HDD のまねをするため」の無駄はカットされ、SSD の性能を十分に引き出す。


デフラグ、もはや過去のものだ。

デフラグとは、HDD に対して必要なテクノロジーであって、SSD の性能を十分に引き出せるのであれば、不要だ。



つまり、3回にもわたってデフラグ話書いたけど、僕が貧乏人でいまだに HDD メインで使っているから、と考えてください。




同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

古くて非力なマシンをLinuxBeanで再生してみた【日記 15/10/23】

Programming Tips

別年同日の日記

01年 11/24

02年 オムライスとカレー

07年 保育園イベントいろいろ

10年 ディズニーランド公式ホテル

13年 ピエール・ベジェの命日(1999)

16年 マジカル頭脳パワー!!


名前 内容


戻る
トップページへ

-- share --

9009

-- follow --




- Reverse Link -