SSDは空き容量がある程度あった方が高速に使える?

SSDは空き容量がある程度あった方が高速に使える?

現代のSSDでは、適切な空き容量を維持することで、高速な処理性能を享受できます。
SSDはその特性と最新の高速化技術により、「空き容量が多いと快適に使える」ように設計されており、十分な空き容量がある場合に最大のパフォーマンスを発揮します。
実際には、メーカー各社による高度なアルゴリズム制御が行われていますが、本記事では基礎的な仕組みを解説します。

SSDの特性

SSDは、古いデータに直接上書きすることができません。

HDDの場合は、直接該当のアドレスに書き込む方法でデータの書き換えが行われますが、SSDのデータ書き換えはそれとは異なる手法で行われます。
データを書き換える時、SSDは一旦古いデータを別の場所にコピーしてから、古いデータを消して新しいデータを書き込みます。HDDとSSDでは、データの書き換えプロセスにこのような違いがあるのです。

SSDのデータは「ページ」と「ブロック」で管理されています。データの読み書きは「ページ」単位で行いますが、データの消去は「ブロック単位」でしか行うことができません。

ページ SSD内の最小単位であり、通常は4KBまたは8KBのサイズを持つ。
ブロック 複数のページが集まって一つのブロックを構成する。
データの消去はブロック単位で行われる。ブロック内のページのデータを削除する際には、そのブロック全体が消去されるため、新しいデータを書き込む際には、元のブロック全体を消去してから書き込みが行われる。

前述の通り、SSDでの書き込みは「上書きができない」ため、書き換えは以下の3ステップを踏む必要があります。

[1]書き込みたいページが含まれたブロック全体を一旦コピー
[2]書き込みたいブロック内のデータを消去
[3]コピーしたデータに変更を加えたものを書き戻す

しかし、最初からデータが消去されている (データが存在しない) ブロックであれば、[1]と[2]の工程が必要ありません。
十分な空き容量のあるSSDでは、データ書き込みに必要なページのコピー、消去、書き戻しの工程が必要になる事が少なくなり、ページへの書き込みのみで対応でき、結果として高速なパフォーマンスが得られます。加えて、ガベージコレクションなどのデータ再配置機能も、十分な空き容量があると効率的に機能します。

高速化技術

最近のSSDは、NANDセルの一部を特別な「キャッシュ」として使用する “疑似SLCモード” が採用されています。このモードには、データの読み書き速度を見た目上高速化する効果があります。
疑似SLCモードはSSDの空き領域を高速キャッシュとして利用し、全体の処理速度が向上させます。

本来、リアルSLCをキャッシュとして配置すれば疑似SLCを使う必要はありませんが、その場合のコストが大きくなってしまうことと、キャッシュとしての容量も固定化されてしまうといったデメリットがあります。そのため、SSDの空き容量を疑似SLCとして利用することで、コストや容量などの問題が軽減されるといったメリットを得られます。
疑似SLCの容量はSSDメーカーのアルゴリズム次第であり、可変できる容量などは異なりますが疑似SLCとして利用するために、SSD内に空いているエリアが必須です。
また、SLCの性質上、保持できる情報量は1bitまでになるため、仮にTLCモードで60GBの空き容量があったとしても、SLCとして利用する場合は1/3の20GBとなります。
そのため、SSD容量を目一杯まで利用してしまうと、前述のキャッシュに割当できる容量が減ってしまうため、速度低下に繋がります。
他にも速度低下を招く要因はありますが、基本的には「SSDの導入は利用したい容量+αで検討する」の考え方でご検討いただくことをお勧めします。

 

参考情報

SSDは容量の大容量化を目指す仮定で、1セルに保持できる情報量を増やす方向に開発が進みました。
その結果、初期のSLCでの情報量は1セルに1bitでしたが、MLCで3bit、QLCで4bitと増えていきました。
しかし、1セルあたりの情報量は増えたものの、QLCに向かうに従って、動作速度の低下や書き換え回数の減少などの問題も表面化しました。
そのため、現在では1セルの情報量ではなくメモリセルを積層化することによる速度アップが主流となりました。

疑似SLCモード

疑似SLCモード (pSLC) は、TLC (Triple-Level Cell) やQLC (Quad-Level Cell) などの高密度NANDフラッシュメモリを、より高速で信頼性の高いSLC (Single-Level Cell) に近い動作をさせる技術です。具体的な利点としては、以下のようなものがあります

耐用期間の向上 TLCやQLCをpSLCモードで使用すると、通常のP/Eサイクル (Programming/Erase) 回数が大幅に向上し、耐久性が改善されます。例えば、TLCをpSLCモードで使用すると、耐用期間が最大33倍に延長されることがあります。
書き込み増幅係数の改善 pSLCモードでは、ページサイズが縮小されるため、書き込み増幅係数 (WAF) が大幅に向上し、書き込み性能が改善されます。
低コスト SLCに比べて低コストで大容量のストレージを実現できます。
疑似SLCモードは、高密度NANDフラッシュメモリを使用しつつ、SLCに近い性能と耐久性を実現するため、産業用ストレージや特定のアプリケーションにおいて有用な技術とされています。
NAND型フラッシュメモリの種類
SLC (シングルレベルセル) 1つのセルに1つのビットを格納し、高速で信頼性があります。
MLC (マルチレベルセル) 1つのセルに2ビットのデータを格納し、低コストで大容量化が可能ですが、書き込み/消去の耐久性が低下する可能性があります。
TLC (トリプルレベルセル) 1つのセルに3ビットのデータを格納し、さらに大容量化が可能ですが、書き込み/消去の耐久性が低下します。
QLC (クアッドレベルセル) 1つのセルに4ビットのデータを格納し、最も大容量化が進んでいますが、書き込み/消去の耐久性が低く、読み取り速度も低下する可能性があります。

まとめ

SSDは、空き容量を確保することで高速化が期待できる一方で、容量をフルに利用するとキャッシュに割り当てる容量が減少して、速度が低下するリスクがあります。SSDの特性を理解し、容量の選定や運用に注意を払うことで、SSDのパフォーマンスを最大限に活用しましょう。
マシンの利用方法等によって最適なSSDの条件は異なりますので、具体的なご相談は弊社テグシス事業部までお声がけください。

このエントリーをはてなブックマークに追加