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

  • 2009/02/14: PerfectDisk 2008の"空き領域の結合を重視"オプションをつけた結果を掲載しました

SSDにおける断片化の影響について

SSDにはデフラグは不要という主張を時々目にしますが、実際にはSSDデフラグの効果はあります。ただし、Windows標準のデフラグはあまり効果がありません。
SSDは、ランダムリード速度に優れたストレージです。そのため、書き込み済みのファイルが断片化していても、そのファイルの読み込み速度はあまり低下しません。
一方、JMF602搭載製品など、一部のSSDはランダムライトがHDDより遅いという欠点を持っています。それらのSSD上の空き領域が断片化していると、書き込み速度が低下してしまいます。Windows標準のデフラグは、積極的に空き領域のデフラグを行わないため、書き込み速度を回復させる効果は高くありません。
空き領域の断片化は、書き込み速度の低下をもたらすだけでなく、寿命の面でも悪影響を及ぼします。SSDは、"ページ"と呼ばれる単位(JMF602搭載、MLCタイプのSSDの場合は32KB)でしか書き込みを行えません。そのため、8KBのファイルを書き込む際に、もし空き領域が断片化していなければ、1ページだけの書き込みで済みます。しかし、もし断片化のために4KBx2に分けて書き込まれると、2ページの書き込みが発生します。つまり、OSからは8KBを書き込んでいるだけなのに、SSDの内部では、前者は32KBの書き込み、後者は64KBの書き込みと同じ動作が行われてしまうというわけです。
というわけで、SSDに対しては、書き込み済みのファイルのデフラグを行うより、できる限り空き領域を統合するようにデフラグを行うことが適しています。

デフラグの効果の検証方法

論より証拠ということで、複数のデフラグメンタを用いてデフラグの効果を検証してみました。
使用するSSDトランセンド製のTS8GSSD25S-S(8GB, SLC, JMF602搭載)、マザーボードAMD 780G(IDEモード)、OSはWindows XP SP3です。
空き領域が断片化した状況を再現するため、ファイルをディスクが埋まるまで書き込み続け、最後にそれらのファイルの半分を削除するというソフトを自作しました。ファイルのサイズは4KB〜1MBの4KB刻みとし、ファイルの大きさと中身は乱数で決定しています。ファイル名は連番とし、奇数番号が付いているファイルを最後に削除しています。乱数の種は毎回同じものを使っているため、何度実行しても作成されるファイルは同じになります。
まず、全く空の状態でのCrystalDiskMarkの結果を示します。

次に、断片化ソフトを実行した後のCrystalDiskMarkの結果を示します。

予想以上に書き込みのパフォーマンスが低下してしまいました。TS8GSSD25S-Sはそもそもランダムライトが非常に遅いという欠点を持っているので、その問題が大きく響いているようです。一方、読み込み速度はあまり変化していません。

各テストは、以下の手順で実行しました。

今回試したデフラグメンタは、Windows標準のデフラグPerfectDisk 2008 ProDiskeeper 2009 Professional(体験版)Defragglerの4種類です。以下では、それぞれのデフラグメンタの特徴と、テスト結果について詳述します。

Windows XP標準のデフラグ

古いバージョンのWindowsについていたデフラグよりは進歩しているとはいえ、やはりサードパーティの製品と比べると見劣りするのは否めません。
デフラグ実行結果の画面は、以下のようになりました。

Windows標準のデフラグは、かなりあきらめるのが早い印象があるのですが、思ったよりはがんばったように見えます。デフラグにかかった時間は15分程度でした。
CrystalDiskMarkの結果は以下の通り。

少しは良くなってますが、最初の状態とは程遠いですね…

PerfectDisk 2008 Pro

Diskeeperと並ぶ、有名な有料デフラグメンタです。今回のテストでは、Vectorから購入した製品版を利用しました。
さすが製品版だけあって、Windows標準のデフラグよりはかなり早く、4分程度で終了しました。終了時の状況では、空き領域の断片化率16%と表示されていました。
CrystalDiskMarkの結果は以下の通り。

性能はいまいち回復しきれていません。完全に空き領域がデフラグできていないためだと思われます。
(09/02/14追加)
このソフトは、デフラグのオプションに"空き領域の結合を重視"という項目を持っているので、今度はそれを有効にして実行してみました。デフラグ時間は6分ぐらいかかりましたが、終了時の空き領域の断片化率は0%になっていました。

すると今度はちゃんと性能が元に戻りました。なぜか最初の状態を上回ってますが、おそらく誤差でしょう。

Diskeeper 2009 Professional(体験版)

こちらも有名なデフラグメンタです。Windows標準のデフラグは、Diskeeperの古いバージョンのさらに機能を落としたものだそうです。
さて、Diskeeperの体験版にはHyperFastと名付けられたSSD用のデフラグソフトが同梱されています。DiskeeperはSSDを自動的に認識し、SSDに対してはHyperfastを用いたデフラグを行うように設計されています。Hyperfastの詳細はあまり明らかになっていませんが、公式ブログの説明では、やはり空き領域をデフラグするもののようです。
なお、HyperfastはDiskeeperとは別売になっていますが、日本語版のHyperfastの発売は未定となっていて、現状日本語版でHyperfastを使うためには体験版をインストールするしかないという謎な状況になっています。 2010年2月19日より日本語版Hyperfastの販売が開始されました。
デフラグの実行時間は、PerfectDiskよりは少し遅く、7分ぐらいかかりました。また、デフラグ完了後のレポートでは、空き領域は45個に断片化しており、そのうち22個は低パフォーマンスと診断されています。
CrystalDiskMarkの結果は以下の通り。

PerfectDisk同様に完全に空き領域が統合されているわけではないのにも関わらず、性能はほぼ回復しています。やはり何かしらSSDに適したデフラグが行われているようです。

Defraggler

今回紹介する中では、Windows標準デフラグ以外では唯一のフリーソフトです。Webサイトは英語ですが、Defragglerは日本語表示も可能です。
このソフトがユニークな点は、空き領域のみのデフラグが可能なことです。まさにSSDデフラグにうってつけと言えます。また、デフラグ処理が高速という利点もあります。今回のテストでは、空き領域のみのデフラグとはいえ、わずか3分程度で終了しました。
CrystalDiskMarkの結果は以下の通り。

すばらしいことに、ほぼ完全に性能が回復しています。

結論

以上のように、Windows標準以外のデフラグメンタでは、断片化に伴うパフォーマンスの低下を大幅に回復させることができました。
フリーソフトでありながら、デフラグ時間が早く性能の回復度も高いDefragglerはおすすめのソフトと言えます。システムドライブにSSDを利用していて、書き込み性能が低下してきたという方は試してみてはいかがでしょうか。
一方、Diskeeperは常駐してデフラグを行う機能を持っているため、常に断片化が少ない状態を保つことができます。ただ、このソフトはやたら沢山のエディションがあって分かりにくい上、Hyperfastが別売であるなど、販売方法にちょっと問題があるのではないかという気がします。
PerfectDiskでも、"空き領域の結合を重視"オプションを有効にすれば、同様に性能を回復させることができました。多少デフラグ時間は長くなりますが、こちらのオプションをつけて実行した方がよいでしょう。また、このソフトは、"SMARTPlacement"という機能(解説)により、空き領域の断片化を起こりにくくすることが可能であるという特徴もあります。