テクノロジー: 2008年3月アーカイブ
デフラグ楽しいです。
[゚д゚]
/[_]ヽ
| |
■■□■■□◇_◇□□□
Gigazineさんの記事でUltraDefragの紹介がありました。
Windows95の頃はボーっとデフラグの様子をみたものです。当時はHDDが500メガ程度でしたらので、しばらく待っていると完了していたのですが、昨今では500ギガが当たり前の時代です(僕のパソコンも1テラつんでいます)。とてもデフラグをまっているわけにはいきません。
そもそもデフラグって必要なんでしょうか?
初心者向けの解説本には、「デフラグさんが、分割したファイルを連結してくれます」なんて書いてあります。HDDは普通4kbyteのセクタと呼ばれる小さな箱が並べられていて、そこにデータをいれておくわけです。データファイルは4kbyte以上あるものがほとんどなので、複数の箱に入れられるのですが、これが連続した箱に入るのと飛び飛びの箱に入る場合では、データを取り出したり、書き込んだりするときの速度が違う・・・というお話です。
OSのファイルシステムドライバからみると、上記の理屈で良いのですが、物理的なHDDの挙動を考えると、多くのパソコンでデフラグなんて気休めです。
連続してないセクタの読み込みのためにはHDDのヘッド(読み取り用の針)を移動させる必要があり、パフォーマンスペナルティ(針の移動時間、針の定位固定までのディスクの回転時間)が発生します。しかし、この針移動のペナルティは、データファイルが一定以上のサイズであればトラックの移動を行うので連続したファイルでも発生しています。HDDメーカの制御技術者は、このヘッドの定位の速度を上げるために血のにじむ様な努力をしています。
たとえば手元にあるHDDではシリンダ数が16383、トラックあたりのセクタ数が63なんて表示されていますが、これは論理ジオメトリで、本当のシリンダ数やセクタ数ではありません。
HGST(旧IBM)のHDDのデータシート(PDF)をみてみましょう。

そりゃ、ディスクの内側と外側で、円周違うんだから、セクタ数かわりますよね。
この資料をみると、最低の1シリンダあたりのセクタ数でも250ギガモデルでは2520個、つまり約12MByte程度です。ディスクヘッドは複数あっても、並列にデータの読み出しはできないので、ヘッドの移動無く読み込めるデータファイルは現状では十数MByteくらいです。
用途にもよりますが、メガ単位のファイルは2、3個に分割されていたところで、読み込みパフォーマンスのペナルティは気にするところではないと思います。むしろ、パフォーマンスに影響があるのは数キロ程度の小さいファイルがプログラムの読み出し実行順序に並んでいるほうがパフォーマンスに効いてきます。
下手なデフラグソフトを使うと、せっかくWindowsが最適配置してあるDLL群のアロケーションを壊します。結果としてデフラグをしたほうが遅くなるということもありえます。

それでも、こんな風に赤い線が混じっていると、全部青くしたくなるのが人情です。
そんな人たち(含む私)はデフラグ潔癖症候群に陥っているのだとおもいます。
そんな方はWikipediaでも読んで、HDDへの愛を深めてください。
