質問: 32):0.700 mb/s [171.0 iops] どの場合でも、「ランダム読み取り4kb q1」は書き込みよりも遅く、ほとんどの場合、「qd32」ではその逆です。一部のフォーラムでは、ssdチップ構造に関する制限と言われていますが、通常のハードドライブと同じ動作が見られるため、別の理由のようです。
回答: 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つの部分から生じます。 ドライブに何をすべきかを伝え、データを送信することを含む、sata/ahciのインターフェース遅延。 コントローラ自体は、受け取ったデータと命令をどう処理するかを理解する必要があります。 nandダイへのデータの実際の読み取りまたは書き込みにかかる時間。 1.と3.のどちらも、長い間変化していなかったため、1k qd1ランダム読み取りもほとんど変化しませんでした。最近のssdのsata/ahciからpcie/nvmeへの移行により、レイテンシが1に大幅に短縮されました。そのため、最近、特定のm.2およびpcie ssdで大きな改善が見られます。ssdコントローラーがレイテンシを大幅に向上させるためにできることの1つは、複数のnandダイへの読み取りまたは書き込みを並行して行うことです。これにより、レイテンシ3のほとんどがマスクされます。ncqでqd32 4kランダム読み取りを実行している場合、ssdは読み取りを処理できます要求が順不同であり、それが可能な限り多くのnandダイから並列に読み取られていることを確認します。qd32 4kランダム書き込みの場合、ssdは書き込み結合と呼ばれる処理を行います。 ssdコントローラーで大量の小さな書き込み要求が発生すると、ローカルでそれらをキャッシュし、書き込みバッファーが十分に大きくなると、コントローラーはそれを適切なサイズのチャンクに分割し、チャンクを複数のnandダイに並列に書き込みます。 nandレイテンシ。書き込み結合のもう1つの利点は、最近のほとんどのssdのページサイズ(読み取りまたは書き込み可能な最小量)が4kを超えていることです。ページサイズに達するまで書き込みを結合すると、大量の書き込みの増幅を回避できます。 ssdが書き込みキャッシュで非常に積極的であるのは、これらのことを行うためです。