デフラグが好きな方は多いと思います。真っ赤なグラフが次第に青に変わっていく姿は精神的に心地よいものがあります。しかし最近「デフラグって実はあまり効果がないのではないか?」という説をよく聞くようになりました。そこで今回はデフラグの有効性について考えてみることにしました。

 さて、デフラグの有効性を考える上でポイントは3点ありそうです。

ポイント1:デフラグでパフォーマンスは向上するのか?

 断片化したデータを連続的に再配置するのがデフラグの役目です。デフラグ実施後に最も効果を発揮するのはシーケンシャルな(連続した)データにアクセスする場合です。それに対してランダムアクセスの場合、特に小さいサイズのファイルを対象としたランダムアクセスの場合はデフラグ効果があまりありません。また年々OSやHDDのバッファサイズが増えていて、HDDへの物理的なアクセス速度がバッファで吸収されていく傾向にあります。

 以上を総合すると、アクセスしようとするデータ中に明らかにシーケンシャルなデータが多い場合はデフラグによるパフォーマンス向上が見込めますが、そうでない場合はデフラグを行っても大してパフォーマンスが上がらないという結論になりそうです。

ポイント2:デフラグはHDDの寿命を縮めるのか?

 この議題に対しては、「寿命を縮める派」と「むしろ寿命が延びる派」が存在するようです。まずは両者の言い分を聞いてみましょう。「寿命を縮める派」の主張としては、デフラグはそれ自体HDDアクセスなので、デフラグばかりやっていると当然HDDの寿命が縮まるという意見。それに大して「むしろ寿命が延びる派」の主張としては、常にHDDが断片化された状態だとヘッドがあちこちに動きまわる状態なので、デフラグを行ったほうがヘッドの無駄な動きが減りHDDの寿命が延びるという意見です。

 それぞれの主張を見てみると双方それなりに筋が通っているので、場合によりけりという結論になりそうです。デフラグを行う頻度や断片化されている程度によると思います。

ポイント3:デフラグの失敗でデータが失われることがあるのか?

 各々のデフラグツールのアルゴリズムや実装についてまで知る術がないので断言はできませんが、デフラグ中にマシンが異常終了したり停電が起こった場合、データが失われる可能性はたしかに否定できないです。よってデフラグの失敗でデータが失われることはたしかにありそうだという結論になりそうです。

結論

 既に記したようにシーケンシャルなデータを連続的にREADするような特殊な状況においてはデフラグはものすごい有効だと思います。しかし一般論として個人的な結論を述べるとすると、デフラグには多くの時間がかかること、デフラグの失敗でデータが失われるリスクがあること、及び劇的にパフォーマンス向上が見込めないことを考えると、一般的な期待値よりもデフラグの有効性は低いのではないかと思いました。