SSDの書き込み速度が低下する理由

最終更新日 2023年09月07日

SSDの書き込み速度が低下する理由とは

基礎

SSDの書き込み速度が低下する理由とは、SSDでは上書きができないのでデータ書き換え処理が複雑になるためです。OSでデータを削除してもSSDには残るため、空き容量にデータを書き込む場合でも複雑なデータ書き換え処理が発生し、データ書き込み速度が低下します。昔はこのデータ書き込み速度低下が問題でしたが、今ではトリムと呼ぶ機能が登場し解決しています。OSで削除したデータをSSDでも削除することがトリムにより実現しました。

出典
SSDの性能低下とTrimの効き具合を大検証! | SSDパーフェクトガイド | DOS/V POWER REPORT(2010年5月号)
M.2 SSDは冷却が必要?・・・・・・など、“ストレージのギモン” 3点を解決 - AKIBA PC Hotline!(2016/11/15公開記事)

SSDの書き込み速度低下を解説

イレースブロック、ページ

SSDの記憶領域の単位にはイレースブロックとページがあります。イレースブロックとは、データを消去する操作でアドレス指定可能な最小単位です。複数のページで構成されています。ページとは、イレースブロックを構成する単位です。SSDではページ単位でデータ読み書きし、イレースブロック単位でデータ消去します。

空きイレースブロック

空きイレースブロックとは、データが書き込まれていないイレースブロックです。1つのページでもデータが書き込まれていたら空きイレースブロックではありません。

データ書き換えでデータ書き込み速度が低下

SSDではイレースブロックのデータを書き換えるとき、データ書き込み速度が低下します。上書きができないためです。

イレースブロック バッファー
ページ1(書き換えるデータ) ページ1(書き換えるデータ)
ページ2(書き換えないデータ) ページ2(書き換えないデータ)
ページ3(書き換えないデータ) ページ3(書き換えないデータ)

まず書き換えるデータが存在するイレースブロックの全データをバッファーにコピーします。

イレースブロック   バッファー
ページ1(空き) ページ1(書き換えたデータ)
ページ2(空き) ページ2(書き換えないデータ)
ページ3(空き) ページ3(書き換えないデータ)

イレースブロックの全データを消去します。バッファーでデータを書き換えます。

イレースブロック バッファー
ページ1(書き換えたデータ) ページ1(書き換えたデータ)
ページ2(書き換えないデータ) ページ2(書き換えないデータ)
ページ3(書き換えないデータ) ページ3(書き換えないデータ)

バッファーの全データをイレースブロックにコピーします。

このようにデータを書き換えるときに様々な処理が発生するため、データ書き込み速度が低下します。

空きイレースブロックが減りデータ書き込み速度が低下

SSDでは空きイレースブロックにデータを書き込むとき、データ書き込み速度が速いです。SSDの空き容量にデータを書き込むことは、空きイレースブロックにデータを書き込むことなので、データ書き込み速度が低下しません。

しかし、OSではデータを削除しても、SSDではOSがデータを削除したと知ることができないので、OSでデータの書き込みや削除を繰り返すと、SSDに空き容量があっても空きイレースブロックが減ります。イレースブロックにOSでは削除したデータがあれば、データ書き換えのときと同じようにデータ書き込み速度が低下します。

イレースブロック バッファー
ページ1(OSでは削除したデータ) ページ1(OSでは削除したデータ)
ページ2(OSでは削除したデータ) ページ2(OSでは削除したデータ)
ページ3(OSでは削除したデータ) ページ3(OSでは削除したデータ)

イレースブロックにOSでは削除したデータがありますが、SSDではOSで削除したデータかわかりませんので、OSで削除していないデータと同等に扱います。

イレースブロックのページ1にデータを新たに書き込むとします。OSでは削除したデータを新たに書き込むデータに書き換えることになります。イレースブロックの全データをバッファーにコピーします。

イレースブロック   バッファー
ページ1(空き) ページ1(新たな書き込みデータ)
ページ2(空き) ページ2(OSでは削除したデータ)
ページ3(空き) ページ3(OSでは削除したデータ)

イレースブロックの全データを消去します。バッファーでデータを書き換えます。

イレースブロック バッファー
ページ1(新たな書き込みデータ) ページ1(新たな書き込みデータ)
ページ2(OSでは削除したデータ) ページ2(OSでは削除したデータ)
ページ3(OSでは削除したデータ) ページ3(OSでは削除したデータ)

バッファーの全データをイレースブロックにコピーします。

このように新たにデータを書き込む場合でも、データ書き換えと同じく様々な処理が発生するため、データ書き込み速度が低下します。

トリムによりデータ書き込み速度低下が緩和

トリムと呼ぶ機能が登場し、空きイレースブロックの減少によるデータ書き込み速度の低下が緩和しています。OSがトリムを実行すると、SSDにOSが削除したデータに関する情報を通知します。SSDではOSが削除したデータかわかるようになり、このデータをガベージコレクションが消去します。空きイレースブロックの減少を抑え、データ書き込み速度の低下も抑えます。

イレースブロック   イレースブロック
ページ1(OSでは削除したデータ) ページ1(空き)
ページ2(OSでは削除したデータ) ページ2(空き)
ページ3(OSでは削除したデータ) ページ3(空き)

トリムがないと、イレースブロックの全データがOSでは削除したデータでも消去できません。SSDではOSが削除したデータかわからないためです。トリムがないと左のイレースブロックのままです。

トリムによりOSでは削除したデータかわかり、ガベージコレクションによりイレースブロックの全データを消去します。右のイレースブロックのように空きイレースブロックを作れます。

イレースブロックにOSでは削除したデータとOSでは削除していないデータが混在する場合があり、OSでは削除したデータの全てをSSDで消去できるとは限りません。それでも空きイレースブロックの減少とデータ書き込み速度の低下を効果的に抑えられます。

トリムありでも十分な空き容量が望ましい

SSDにはウェアレベリングと呼ぶ機能があります。SSDには書き換え可能回数があり、一部のイレースブロックにデータ書き換え回数が集中して増加すると寿命が短くなります。ウェアレベリングがデータ書き換え回数を分散させます。

SSDの空き容量が少ないと、データ書き換えと似たような様々な処理が発生しやすく、データ書き込み速度が低下します。データ書き換え回数を分散させるために、データ書き換え回数が少ないイレースブロックにあるデータを、データ書き換え回数が多いイレースブロックに移動させる処理が発生することが多くなります。

どのくらい空き容量があればよいか正解が1つではありません。とりあえず容量の20〜30%が空きを目安とし、それでもデータ書き込み速度の低下が問題にならなければ、さらに空き容量を少なくしてみるとよいです。問題になるほどデータ書き込み速度が低下したら空き容量を増やします。

コラム

データ未消去の余剰イレースブロックが増えデータ書き込み速度が低下

SSDによってはデータ書き込み速度の低下を抑えるために使用する余剰イレースブロックがあります。データを消去していない余剰イレースブロックが増え、データ書き込み速度が低下する場合があります。これもSSDのデータ書き込み速度が低下する原因の一つです。

SSDにデータを書き込みイレースブロックのデータを書き換えることになる場合、イレースブロックのデータをバッファーにコピーし、バッファーでデータを書き換えます。バッファーのデータを余剰イレースブロックにコピーし、余剰イレースブロックではない通常のイレースブロックとします。データ書き換え前のデータがあるイレースブロックを余剰イレースブロックとし、後にデータを消去します。

上記の方法を採用するとデータ書き込み速度の低下を抑えられます。時間がかかるイレースブロックのデータの消去を後回しにできるためです。上記の方法を採用しない場合、データ書き換え前のデータがあるイレースブロックのデータを消去するとデータ書き換えが完了となるので、データ書き換えにかかる時間が長くなりデータ書き込み速度が低下します。

データを消去していない余剰イレースブロックが増え、データを消去した余剰イレースブロックがなくなると、データ書き込み速度が低下します。データを消去した余剰イレースブロックを確保するためにデータを消去する必要があり、データを消去するまでOSが待つためです。

出典
なぜ消えるのか、劣化するのか(7ページ目) | 日経クロステック(xTECH)(2009/11/19公開記事)


キャンペーン情報(PR)
マウスコンピューター
・ゴールデンウィークセール
最大30,000円OFF!!
(5月8日迄)
DELL
・ゴールデンウイーク
GWはお得がいっぱい
(キャンペーン実施中)
パソコン工房
・ゴールデンウィークセール
ゲーミングPCやクリエイター向けパソコンをラインナップ
(5月7日迄)

SSDの速度



デル株式会社