SSDにデフラグは必要か不要かの論争に終止符


 「SSDにデフラグは不要」言うのは間違いです。

  • TRIMのないXP, VISTA, SSDでは状況変わらず。デフラグは必須。
  • TRIM搭載の7, 8, 10では有用にレベルダウン(2016.4月現在)。

ocxz

図版引用:SSD劣化ソフト「スペースデデフラグ」

もしも「SSDにデフラグは不要」、「SSDにデフラグは百害あって一理なし」という主張を見かけたらNANDフラッシュの事を知らない人が勘違いしたと思ってください。

この図は今では今では見る事もない2011年頃のSSDのベンチマーク結果です。デフラグをかけないとこのように速度がどんどん遅くなり、4Kで実に1/100にまで低下しています。

ただし、最近のSSDはメーカ型式によりますが普通に使って悪くて2/3くらいの速度低下があると思ってください。かつてはSSDだからこそデフラグを掛ける必要があり、今は30%未満の低下に収まっています。

1.基礎情報、NAND素子の特性

まずハードディスクとSSDの特性の違いを表にまとめます。ちなみにWindowsのディスクのアクセス単位は4KBです。図中の4KBのアクセス単位はここから来ています。

ハードディスク SSD
リード 4KB単位ランダムアクセス可能 ページ単位ランダムアクセス可能
※ページは4KBが多い
ライト 4KB単位ランダムアクセス可能 上書きは512KBxN倍単位
初回書き込みはページ単位

SSDのライトに注目ください。初回書き込みはページ単位ですが上書きが発生した時に512KBxN倍単位になります。ハードディスクが4KB単位で素直にアクセスできるのに対しSSDはライトで512KBxN倍単位という断層があります。“SSDには円盤がないからデフラグが不要”という意見はこの512KBxN倍単位という性質を理解しない意見です。

ぼちぼちキナ臭さに気が付くと思います。

■よび知識としてハードディスクの構造

ハードディスクの円盤

ハードディスクは内部に円盤が入っており、読み取りヘッドが移動してアクセスします。この構造だと、デフラグをかけないと速度がどんどん低下します。ハードディスクにおいてはデフラグを極めて重要です。

■SSDに入っているNANDメモリの特性

NAND1

NANDメモリはリードはページ単位で行います。制約はありません。
ライトは一回しか出来ません。2回目、つまり上書きできません
上書きする時は一度、ブロック(区画)を丸ごと消去する必要があります。

1)初回書き込みはページ単位
NAND2

2)上書きが発生するとブロック512KBxN単位のアクセスが発生
NANDへの上書き

上書きが発生した時、1ブロック512KBの消去が発生します。
1ページ4KB、1ブロック512KBの時、上書きの有無で128倍の以上の速度が発生します。

ここでより複雑なデータを考えて見ましょう。3ページ分の書き込みが考えます。

NAND4

3つのブロックに1ページずつ書く場合と、一つのブロックに書く場合で速度が変わる事は容易にわかります。一つのブロックに収まらず、複数に散るほど「上書き」の発生する可能性が高くなります。つまり遅くなる確率が上ります。

2.初期のSSD、あるいは最も原始的なSSDの構造

NAND5

最も単純なSSDの構造はこういうものです。
単純にハードディスクの磁気メモリをNANDに置き換えただけのものです。
Windowsの管理するディスクイメージに一対一でNANDがあります。
プチフリが社会問題だった頃の噂を挙げます。

・買った時は高速だったのに、使っているうちにどんどん遅くなる。

なんの事はない。購入当時はページへの初書き込みで高速だったが、使っているうちに上書きが発生して遅くなる。

・デフラグは不要、NANDが傷むから掛けるべきではないと言う主張

ファイルの断片化が増大に比例して書き込みがどんどん遅くなる。デフラグは不要という意見が世の多数を占め、デフラグをかけないから事態をさらに悪化させる。

・Windows(XP)のデフラグはHDD用なのでかけても効果はない

この時代のSSDは購入直後、クイックフォーマットを掛けた直後はほとんどのブロックはまっさらです。上書きは当然、ほとんど発生しません。TRIMのない時代、容量一杯分書き込むと後は上書きの連続となります。デフラグをかけても購入時に戻らないから効果はないと言われたのが真相ではないでしょうか。

当時のSSDはデフラグを掛けないとどんどん遅くなり、理論上最悪で1/128まで速度が低下します。

3.今のSSD、改良型のSSD

今のSSDはTRIMの恩恵を受けてデフラグをしなくても性能を維持できるように改善の道を歩みました。
今のSSDだからこそデフラグが不要になったともいえます。
今のSSDは次の構造を取ります。

NAND6

SSDは突然の電源断に備え、DRAMの使用を必要最低限度にする必要があります。
この制限からSSDの内部構造をさらに考えると次の構造をとると考えられます。

NAND7

SSDに送付されるデータは「データ小包(パケット)」の形をとります。これはディスクのアドレス番地+長さ+実際のデータの構成をとります。

OSから受け取ったデータ小包を空いているページに順番に書いていきます。管理情報バッファは筆者の推測箇所です。128GBのSSDでページサイズが4KBの時、その管理情報は最低256MB以上必要です。
管理情報サイズ≒ (SSDサイズ / ページサイズ4KB) × 8
比定できます。8はバイト数です。4バイトの最大表現は4GBですから倍の8としています。
実際には128GBの1%の1GBが現実的な線でしょう。これをDRAMで管理した時、停電時に1GBの書き込む必要があります。高速SSDで秒速500MB、とすれば1GBの書き込みに掛かる時間は2秒。
∴メモリだけはムリ。

従い、停電対策で振り分け情報をNANDに保存していると比定します。

4.SSDのデフラグの今

筆者の見解。

  • TRIMのないXP, VISTAでは状況変わらず。デフラグは必須。
  • TRIM搭載の7, 8, 10では有用にレベルダウン(2016.4月現在)。

TRIMのないOSでは最新のSSDでも「2)上書きが発生するとブロック512KBxN単位のアクセスが発生」で説明した動作をせざろうえなくなり、幾何級数的に速度が低下します。
■サムスンSSD 840での測定結果・・・99%断片化に追い込んだテストです

sumx1

■インテルSSD 330での測定結果・・・99%断片化に追い込んだテストです

x1

このテストで言える事は新世代のSSDほどリードが遅くなる傾向を。ここから導きだされることはSSDが断片化の影響受けなくてもNTFS(Windowsのディスク管理形式)が断片化の影響を受ける思われる事。つまり、Windows、ディスク全部考えてあげないとダメということです。
∴デフラグは必要

実際に筆者がここ2年使用しているCFD販売HG6Q512GBのデフラグの効果を揚げます。

HG6Qデフラグの効果

このSSDは空き容量が20%と逼迫していること、最後にデフラグを掛けたのが半年程前であること。デフラグ結果を見る限り、SSDで問題となる空き領域の断片はほとんど起きておらず断片化は不要と思われる事を述べて起きます。デフラグソフトは「SSDブースター」を使用しました。このソフトは「MyDefrag」のミドルウェアです。

デフラグで変化した速度の変化

512Kで約10%。最も重要な4Kのスコアが37%伸びています。後は誤差の範疇です。
※このSSDはデフラグ後速度が一時的に遅くなる特性があります。PCを再起動、数時間置いておくと高速化する特性があります。
デフラグは本来は次のような断片化が起きている時に使用すべきです。

20130217_491917

実際の運用は次でよいでしょう。

  • 速度低下を感じた時にデフラグをかければ良い。
  • SSDのメーカ型式により、デフラグの必要性はまちまちである。
  • SSDの空き容量は30%の余裕を持つ事。これを割ると急速に遅くなる。遅くなる理由はNTFSの管理テーブルの肥大化が原因と推測される。