« 私のお気に入りのディスク デフラグ ソフト | トップページ | エラー: Event ID 4107 CAPI2 »

2010/11/08

SSD のディスク デフラグ (私の場合)

 HDD (ハードディスクドライブ) と違い、物理的に稼働する部分のない SSD にはドライブ上のファイルをそろえるためのディスク デフラグは必要ないといわれている。

 むしろ、書き込み回数に明確な制限が存在する今の SSD に対しては、ディスク デフラグは SSD の寿命を縮めるだけとも言われている。

 現に、Windows で標準にスケジュールされているディスク デフラグ機能は、SSD がシステムドライブに使われている場合に自動的にオフになる。

 ところが、実際に SSD を運用していくと、SSD でも書き込みの性能低下が起こるという報告が、あちこちでなされている。その代表的な報告がこちらだ。

博士課程大学院生の現実逃避日記

[SSD]SSDのデフラグの効果を検証

 私の理解は、以下のようなものだ。

  • Windows システムが記憶しているファイルの配置と、SSD が実際に管理しているファイルの配置は全く別物。
  • Windows システムが1つのファイルを2か所に分けて保存をすると、SSD は2つの別々なファイルと認識をして保存をする。
  • SSD がファイルを書き込む時は実際のファイルのサイズよりもかなり大きな領域を書き込まなければならない仕様になっている。
  • そのため、Windows システムが1つのファイルを細かく分割して保存しようとすると、その数倍のサイズの領域を SSD は書き込まなければいけなくなるため、SSD の書き込み性能が大きく低下する。

 なので、SSD に複数回にわたる無駄な書き込みを行わせないことで、書き込み性能の低下を防ぎ、なおかつ寿命を無駄に縮ませることを防ぐことができる。というのもまた、私の理解だ。

 Windows システムに、1つのファイルは1回で書き込ませるためには、Windows システムに 「どんな大きさのファイルでも1回の書き込みで書き込める領域がある」 と思わせなければいけない。それが、“空き領域のディスク デフラグ” が必要な理由となる。

 あくまでも 「Windows システムに1回でファイルを書き込ませるため」 のディスク デフラグであり、SSD 上のファイルの配置を整理整頓するためのディスク デフラグではない。最初に言ったように、SSD には読み込みヘッドの移動といった物理的な動作がないため、ファイルそのものがいくら分断されていても、読み込みの際の性能低下はほとんどないはずなのだ。

 以上のような理由で、『MyDefrag』 による SSD のディスク デフラグの私が使っているスクリプトは、以下のようになっている。なお、このスクリプトを使ったことで何らかの不都合が生じたとしても、私は一切の責任を負えない。

VolumeSelect    
  CommandlineVolumes()      
VolumeActions

  /* Zone 1: not updated files. */    
  FileSelect      
    LastChange( ,1 days ago)      
  FileActions      
    FastFill()      
    ForcedFill()      
  FileEnd

  /* Zone 2: recently updated files. */    
  FileSelect      
    all      
  FileActions      
    MoveToEndOfDisk()      
  FileEnd

VolumeEnd

 簡単に解説をすると

  • 1日更新がなかったファイルと、1日以内に更新のあったファイルを分けている。
  • デフラグは行わず、それぞれのゾーンの空いている隙間にファイルを詰め込んでいる。
  • フラグメンテーションせずに詰め込めるファイルを優先して、それでも隙間が空いている場合は、ゾーンの終わりにあるファイルを無理やりフラグメンテーションさせて詰め込んでいる。
  • 頻繁に更新が行われていると思われるファイルがディスク領域の先頭近くにあると、Windows システムが書き込みに使える細かい空き領域ができやすいため、更新頻度の高いと思われるファイルは、ディスク領域の最後尾に配置している。

 このスクリプトを実行することで、Windows システムがファイルを書き込むために使おうとする部分にすべての空き領域が連続するため、ファイルの書き込みが必ず1回で行われる計算になる。とはいえ、実際に私が期待する動作になっているという確認を取ったわけではないので、断言はできない。

 このスクリプトでデフラグを行った後は、さらに 『Intel SSD Toolbox』 で “Trim” を行い、SSD が無駄な書き込みをなるべく行わないようにしている。

私のスクリプトによるデフラグの効果は実際のところはわからない。それでも、各種のディスクアクセスのベンチマークテストで SSD の性能をチェックすると、新品の時に測定した時とほぼ変わらない値を示しているので、私自身は満足している。

|

« 私のお気に入りのディスク デフラグ ソフト | トップページ | エラー: Event ID 4107 CAPI2 »

パソコン・インターネット」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: SSD のディスク デフラグ (私の場合):

« 私のお気に入りのディスク デフラグ ソフト | トップページ | エラー: Event ID 4107 CAPI2 »