ハードウェア

HDD・SATA SSD・NVMe SSD・Optane SSDで「レイテンシ」にどれほど差があるのか?


コンピューターのメインバスなどに直接接続される主記憶装置はレイテンシやスループットに優れていますが、その反面として小容量という問題を抱えています。容量問題を主眼に据える場合はHDDやSSDなどの補助記憶装置を用いるべきですが、その際に重要となる「レイテンシの差」について、エンジニアのルスラン・サフチェンコ氏がHDD・SATA SSD・NVMe SSD・Optane SSDにおける調査結果を解説しています。

A journey to io_uring, AIO and modern storage devices
https://clickhoμse.tech/blog/en/2021/reading-from-external-memory/

補助記憶装置はホスト側とデータのやりとりを行う際、1バイトごとではなくデータをひとまとめにした「ブロック」と呼ばれる単位で入出力を行っています。どのサイズを1つのブロックとして扱うかはメーカーによってさまざまで、場合によっては長年にわたって使い続けてきたブロックサイズの更新を怠った結果、最新機器には不適格なブロックを設定し続けているメーカーも存在するそうです。


今回サフチェンコ氏が試みたのは、HDDやSSDなどにおける「最適なブロックサイズ」の算出です。サフチンェンコ氏は各補助記憶装置に4KB~16MBのブロックをランダムリードさせ、その際のアクセス時間の遅延(レイテンシ)についてMAX(最大)・P99.9(99.9パーセンタイル)・P99(99パーセンタイル)・AVG(平均)・MIN(最小)の5つを計測しました。

HDDの結果が以下の通り。横軸がブロックサイズ、縦軸はレイテンシの秒数で、グラフ自体は両対数グラフとなっています。


HDDの特徴として、「256KB以下のブロックサイズでは、レイテンシがほとんど変わらない」という点が挙げられます。この点についてサフチェンコ氏は「データ転送の時間よりもシーク時間のほうがはるかに大きいため」と解説。読み書きの際に磁気ヘッドがディスク上の目的トラックに移動するという「シーク」がブロックサイズによらず一定である点が原因だと語りました。そしてこのことからサフチェンコ氏は、「HDDの場合は少なくとも256KB以上のブロックサイズを使うべきだ。ただし、256KBにおいてはレイテンシのバラつきが大きすぎる」と結論づけています。

続いてSATA SSDの結果が以下。


レイテンシはHDDが達成し得なかった「μs(マイクロ秒)」の単位にまで到達しており、4KBにおける最小レイテンシはわずか140μs。ブロックサイズとレイテンシはほぼ一貫して正比例している点も特徴です。サフチェンコ氏は前述のHDDの結果を引き合いに出して、「SATA SSDはHDDに比べ、ブロックサイズが256KBでは10倍も高速だが、ブロックサイズが十分に大きい(4MB以降)場合は2倍しか高速にならない」とコメントしています。

続いてはNVMe SSDの結果。


HDDに比べて大幅な改善を示したSATA SSDをさらに上回る結果で、サフチェンコ氏は4KBのブロックサイズでSATA SSDとNVMe SSDを比較した際に、平均レイテンシはほぼ同等であるものの、NVMe SSDは99パーセンタイルが2倍高速である点や、1MBのブロックサイズでNVMe SSDはいずれの結果も1msを割っている一方、SATA SSDはいずれの結果も3msを超えている点を特筆。ただし、「HDDからSATA SSDほどの飛躍ではない」とコメントしています。

最後はOptane SSD。


4KBにおける最小レイテンシはわずか12μsで、NVMe SSDの約10倍、HDDの1000倍高速という驚異的な結果。ただし最大レイテンシや99パーセンタイルレイテンシなどが最小レイテンシや平均レイテンシに比べて大幅に悪く、「ムラがかなり大きい」とサフチェンコ氏は言及しました。

また、Optane SSDに関しては「レイテンシが非常に小さい場合は、ポーリングモードが有効」として、ポーリングモード時のレイテンシも計測しています。結果が以下。


「256KBのブロックサイズにおいて最大レイテンシが半分になった」とサフチェンコ氏はコメントしています。

以上の結果について、HDD・SATA SSD・NVMe SSD・Optane SSDの結果を一目で見られるようにしたのが以下のグラフ。それぞれのブロックサイズに記されている棒グラフ4種は、左からOptane SSD・NVMe SSD・SATA SSD・HDDという順。グラフが長いほうがレイテンシが高いことを意味してます。なお、4MB以降のブロックサイズは予測が容易であるとして省略されています。


いずれの規格・ブロックサイズにおいても、「SSDはHDDよりもレイテンシに関して優れている」という点は明白。ランダムリードに最適なブロックサイズについては、「HDDが256KB、SATA SSDとNVMe SSDは4KB、Optane SSDは8KB」とのことでした。

この記事のタイトルとURLをコピーする

・関連記事
ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE

HDD故障率のメーカー・モデル別統計データ2020年版、故障率が最も高かったのは? - GIGAZINE

約15万台のHDDを運用するBackblazeがHDD故障率レポート2020年Q3版を公開、18TBモデルなど大容量化が進む - GIGAZINE

SSDの性能を比較する上で考慮すべき3つのポイント - GIGAZINE

in ハードウェア, Posted by log1k_iy

You can read the machine translated English article here.