ZAPAnet総合情報局 > ZAPAブログ2.0 > [実験]SSDをデフラグすると速くなるのか

[実験]SSDをデフラグすると速くなるのか

2014年04月18日 パソコン(PC)
前記事「PCの調子が悪くてプチフリすると思ったら、半分ソニーのせいだった」からの続きです。ソニーのソフトウェアの設計が賢くなく、画像ファイルが大量に生成され、SSDの空き容量が不足し、PCにプチフリが発生するようになってしまった問題です。SSDの老朽化、空き容量不足、断片化等がたまにPCのプチフリを引き起こした原因だと思われます。

SSDは、使い込んでいくうちに性能が低下していくことがよく知られています。HDDの場合は、断片化が発生すると速度が低下し、デフラグをすることによって性能が回復することも知られています。SSDの場合はどうでしょうか。SSDの場合は、「SSDをデフラグする意味はない!SSDの寿命を縮めるだけだ!」とよく言われています。本当にSSDにデフラグは意味がないのか、実験してみることにしました。

まずはTrim

デフラグを実施する前に、まずはSSDのTrimコマンドを実行します。自分はIntel製のSSDを使っているので、「Intel Solid-State Drive Toolbox」が使えます。このツールで、Intel SSD Optimizerを実行します。Trim機能を使用すると、SSDのパフォーマンスが最適化されます。これを実行してからでないとデフラグの効果がわからなくなってしまうため、まずはTrimを実行します。いらないファイルをすべて削除してから、Trimを実行した方が良いでしょう。

自分の場合は、一時SSDの空き容量が10GB程度まで減ってしまっていました。SSDはランダムリードが速いので、ファイルが断片化してもそれほど速度は低下しないと言われています。ただし、一度SSDを使い込んで容量を減らしてしまった場合、空き領域が断片化します。空き領域への書き込みが、断片化した細かい領域へのランダムライトになってしまうと、プチフリが発生するようになるのではないかという仮説が立てられます。

ということで、残り容量が10GB程度まで減ってしまったSSDのファイルを整理して、約20GBの空き領域を確保しました。そしてTrimを実行して、SSDの性能を回復させました。

CrystalDiskMarkでベンチマーク

Trimが終わったら、SSDの読み書き性能をチェックします。「CrystalDiskMark」を使ってベンチマークしてみました。

結果はこの通りです。
SSD

2009年の「SSDのファームウェアをアップデートした」の時に、ベンチマークした結果は以下の通りでした。OSは現在、Windowsを8.1にアップデートしています。2009年とは、マザーボード、SSD、CPU等の構成は同じです。「CrystalDiskMark」は、上で少し古いバージョンを使ったつもりでしたが、2009年はもっと古いバージョンでした。
SSD

CrystalDiskMarkのバージョンが違い、OSも違うため比較し辛いです。見るべきところは、4Kの項目です。現在よりも昔の方が、4KのRead/Write性能が良好のように見えます。つまり、SSDの長期使用により、4Kの性能が低下してしまったように見えます(バージョンが違い、誤差もあります)。

SSDの容量空け

SSDのデフラグをする前に、SSDの空き容量を確保することが必要です。以下は、Windows8.1で自分がSSDの容量空けのために行った内容です(休止状態ファイルの一時削除以外は、上のTrim実行前に実施しました)。
1.SSD内のいらないファイルを手動で削除

2.ディスクのクリーンアップ
SSDのドライブを右クリック>プロパティ>ディスクのクリーンアップ>システムファイルのクリーンアップで、いらないファイルをすべて削除(ゴミ箱の中身やWindows Updateのファイルなど)。

3.ページングファイルの一時削除
コントロールパネル>システムのプロパティ>パフォーマンスオプション>詳細設定>仮想メモリで、SSDのページングファイルをなしにして、一時的に他のドライブに割り当てる。

4.休止状態ファイルの一時削除
電源オプションから、ハイブリッドスリープをオフ。
コマンドプロンプトを起ち上げ、「powercfg.exe /hibernate off」を実行。

5.再起動
まずは、SSD内のいらないファイルを手動削除し、ディスクのクリーンアップで空き容量を確保します。

ハイブリッドスリープをオンにしている場合、PCの搭載メモリ容量が大きいと、hiberfil.sysのファイルサイズがかなり巨大になります。一時的にハイブリッドスリープをオフにし、powercfg.exeでhibernateをoffにすることによって、hiberfil.sysを削除してSSDの容量を開けています。デフラグ後にハイブリッドスリープを復活させたい倍は、逆の手順を踏んで、ハイブリッドスリープをオンにします。

ページングファイルもかなりの容量を使います。これも一時的に他のドライブにページングファイルを設定し直して、SSDの空き容量を確保します。デフラグ後には、ページングファイルを設定し直します。

すべて設定し終えたら、PCを再起動します。

Defragglerで空き領域のデフラグ

Defraggler」というフリーのデフラグツールを使って、現在のSSDの状況を調べてみました。青いところが断片化されていない部分で、赤いところが断片化されている部分です。7GBのファイルが断片化されていました。また、予想通り空き領域の断片化も激しそうです。SSDの前半部分にまとまった領域の空き領域ができているのは、おそらく今までhiberfil.sysやpagefile.sysが割り当てられていた部分だと思われます。
SSD


効果があるか分かりませんでしたが、まずは空き領域のデフラグを実行してみました。空き領域のデフラグは、ドライブを選択し、アクション>拡張>空き領域のデフラグと選択します。空き領域のデフラグをしても、思っていたよりもきれいな配置にはなりませんでした。
SSD


空き領域のデフラグが終わったところで、SSDのベンチマークを取ってみました。性能が回復するどころか、むしろ512KのWrite性能が落ちてしまいました。誤差なのか何なのかはわかりません。
SSD

DefragglerでSSDの完全デフラグ

空き領域のデフラグは何の効果もなかったので、SSD全体をデフラグしてみました。「寿命が縮むから、SSDはデフラグするな!」と言われている行為です。

デフラグした結果、ほぼ断片化が解消されて、青い色に変わりました。なぜ断片化が解消されていない部分があるのか調べてみたら、Kasperskyで使用中のファイルでした。完全にきれいにするには、アンチウイルスソフトを止めてからデフラグを実行しないとダメだったみたいです。ちょっと失敗しました。
SSD

SSDのデフラグが終わったところで、もう一度Trimをかけて(効果があるのかどうかはわかりません)、PCを再起動しました。

そして、もう一度SSDのベンチマークを取ってみると、驚きの効果が…!?

SSD


4KのWrite性能が59.53MB/sにアップしました!

4KのWrite性能は、今回の実験前が35.73MB/s、2009年が47.22MB/sで、今回のデフラグ後は59.53MB/sになりました。なぜか過去最高の4K Write性能です(ただ、4K Readのテスト結果は過去最低になりました)。デフラグ前に比べて、SSDの4K Write性能は約1.6倍になりました。

結論:SSDをデフラグすると速くなるのか

SSDを使い込んで空き容量を少なくしてしまい、何度も書き込み/削除を繰り返していると、空き領域の断片化が発生します。空き領域の断片化が発生した結果、通常の書き込み速度の低下、またページングファイル等の断片化が発生し、PC全体にプチフリが発生してしまったのだと思われます。断片化はTrim機能を使っても解消されず、やはり専用のツールでデフラグをするのが良いようです。今回、SSDのデフラグを実行してみて、PCのプチフリは完全に収まりました。

したがって、一度でもSSDの空き容量を減らしてしまった場合は、「SSDの空き容量を増やす→デフラグ」をすることで空き領域の断片化が解消し、SSDが速くなる場合があるようです。

SSDには書き込み耐久回数が存在しますし、よくわからないならデフラグはやらない方が安全です。また、デフラグをしないで済むように、普段からSSDの空き容量に注意して、十分空きが確保されている状態を維持するのが良いと思います。


追記[検証]SSDの寿命は、4〜5年使用するとどれくらい縮むか