hdd / ssdベンチマークでの4k読み取りが書き込みより遅いのはなぜですか?


12

PCドライブの速度をテストするために利用できるいくつかのベンチマークツールがあります。

以下は、SATA SSDのベンチマークの例です。

  • 順次読み取り:718.498 MB / s
  • 順次書き込み:777.414 MB / s
  • ランダム読み取り512KB:160.541 MB / s
  • ランダム書き込み512KB:838.930 MB / s
  • ランダム読み取り 4KB(QD = 1):26.985 MB / s [6588.1 IOPS]
  • ランダム書き込み 4KB(QD = 1):135.603 MB / s [33106.2 IOPS]
  • ランダム読み取り4KB(QD = 32):177.003 MB / s [43213.6 IOPS]
  • ランダム書き込み4KB(QD = 32):178.397 MB / s [43554.0 IOPS]

m.2 SSD:

  • 順次読み取り(Q = 32、T = 1):829.119 MB / s
  • 順次書き込み(Q = 32、T = 1):677.645 MB / s
  • ランダム読み取り4KiB(Q = 32、T = 1):744.328 MB / s [181720.7 IOPS]
  • ランダム書き込み4KiB(Q = 32、T = 1):144.876 MB / s [35370.1 IOPS]
  • 順次読み取り(T = 1):785.600 MB / s
  • 順次書き込み(T = 1):789.973 MB / s
  • ランダム読み取り4KiB(Q = 1、T = 1): 56.585 MB / s [13814.7 IOPS]
  • ランダム書き込み4KiB(Q = 1、T = 1): 170.449 MB / s [41613.5 IOPS]

HDD:

  • 順次読み取り:114.988 MB / s
  • 順次書き込み:111.043 MB / s
  • ランダム読み取り512KB:39.260 MB / s
  • ランダム書き込み512KB:57.409 MB / s
  • ランダム読み取り4KB(QD = 1):0.546 MB /秒 [133.4 IOPS]
  • ランダム書き込み4KB(QD = 1):0.757 MB /秒 [184.9 IOPS]
  • ランダム読み取り4KB(QD = 32):1.582 MB / s [386.3 IOPS]
  • ランダム書き込み4KB(QD = 32):0.700 MB / s [171.0 IOPS]

どの場合でも、「ランダム読み取り4KB Q1」は書き込みよりも遅く、ほとんどの場合、「QD32」ではその逆です。

一部のフォーラムでは、SSDチップ構造に関する制限と言われていますが、通常のハードドライブと同じ動作が見られるため、別の理由のようです。

回答:


9

TL; DR: SSDが嘘をついていて、書き込みが実際に行われる前に行われると言っているためです。読み取りについては同じことを回避できません。

答えの長いバージョンは書き込みキャッシュです。

QD1ケースから始めましょう。SSDは、データを受信して​​ドライブのローカルキャッシュに保存した後、実際にNANDに書き込む前に、書き込みが完了したことをOSに報告します。NANDへのデータの書き込みは非常に遅いため、これは大きな違いをもたらします。読み取りの場合は、実際にデータを送信する前にNANDからデータを読み取る必要があります(以前に読み取ってキャッシュに残っている場合を除きますが、ランダム読み取りの場合はほとんどありません)。

これの欠点は、突然の電力損失に直面して、SSDに書き込まれたデータが失われる可能性があることですが、まだNANDに到達していません。一部のエンタープライズSSDには、突然の電力損失が発生した場合にキャッシュ内のデータのNANDへの書き込みを完了するのに十分な電力を格納するスーパーコンデンサーが含まれています。

ハードドライブも書き込みキャッシュを行っているため、同じことがわかります。彼らはそれについてほとんど積極的ではありません。SSDがそれほど強力なのはなぜですか?これに答えるには、QD32のケースを検討するように移動する必要があります。これは、より複雑で興味深いものです。

QD32では、ランダム読み取りの方がランダム書き込みよりも一般的に高速であるというのは、あなたの言うことではありません。それはあなたがどの特定のSSDを見るかに大きく依存します。

多くのSATA SSDで4k QD1ランダム読み取りを見ると、それらはすべて20〜30 MB / sの範囲で実行されているようです。何故ですか?これは、4k QD1のランダム読み取りのほとんどがレイテンシであり、スループットではないためです。レイテンシは次の3つの部分から発生します。

  1. ドライブに何をすべきかを伝え、データを送信することを含む、SATA / AHCIのインターフェース待ち時間。
  2. コントローラ自体は、受け取ったデータと命令をどう処理するかを理解する必要があります。
  3. NANDダイへのデータの実際の読み取りまたは書き込みにかかる時間。

1.と3.のどちらも長い間変化しなかったため、1k QD1ランダム読み取りもあまり変化しませんでした。

最近のSSDのSATA / AHCIからPCIe / NVMeへの移行により、レイテンシが1に大幅に短縮されました。そのため、最近、特定のm.2およびPCIe SSDで大きな改善が見られます。

SSDコントローラーがレイテンシを大幅に改善するためにできることの1つは、複数のNANDダイへの読み取りまたは書き込みを並列に行うことです。これにより、レイテンシ3のほとんどがマスクされます。順不同でリクエストを行い、それが可能な限り多くのNANDダイから並列に読み取られるようにします。

QD32 4kランダム書き込みの場合、SSDは書き込み結合と呼ばれる処理を行います。SSDコントローラーで大量の小さな書き込み要求が発生すると、ローカルでそれらをキャッシュし、書き込みバッファーが十分に大きくなると、コントローラーはそれを適切なサイズのチャンクに分割し、チャンクを複数のNANDダイに並列に書き込みます。 NANDレイテンシ。書き込み結合のもう1つの利点は、最近のほとんどのSSDのページサイズ(読み取りまたは書き込み可能な最小量)が4kを超えていることです。ページサイズに達するまで書き込みを結合すると、大量の書き込みの増幅を回避できます。SSDが書き込みキャッシュで非常に積極的であるのは、これらのことを行うためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.