web-dev-qa-db-ja.com

NVMe ssd:なぜ4kは読むより速いのですか?

私は、PCIe Gen.3x4を実行しているNVMe上のSamsung 960 Pro 512 GB SSDを使用しています。私はSamsung NVMe Driver 2.0.0.1607を使います。 SSDは正常に動作しています。しかし、なぜ4kの書き込みが4kの読み取りより速いのかわかりません。私はASベンチマークを使用しています。

enter image description here

それは3の要素です!私のシステムやASベンチマークで何か問題がありますか、それともこれは正常ですか?

51
musbach

4kの読み取りは、ドライブが実行できる最も困難なことになります。これらは、ドライブが処理できる最小のブロックサイズの1つであり、ドライブが大量のデータをプリロードする方法はありません。実際、ドライブの先読みロジックが何かを読み込もうとしている場合、おそらく非常に非効率的です。 4キロバイトより大きい。

「普通の」ドライブの読み取りは、そのように小さいファイルが非常に少ないため、4kbより大きくなる可能性が高く、ページファイルでさえ、プログラムだけに「奇妙」になるのは奇妙なので、大きな塊で読み込まれる可能性があります4KBのメモリがページアウトされました。これは、ドライブが実行しようとするプリロードが実際にはドライブのスループットを低下させることを意味します。

4Kの読み取りはドライブバッファを通過する可能性がありますが、テストの「ランダム」な部分はそれらをまったく予測不可能にします。コントローラは、ドライブがさらに通常の「大規模」読み取りを再度必要とする可能性がある場合を認識しません。

一方、4K書き込みは効率的な方法でバッファリング、キューイング、およびシーケンシャルに書き出すことができます。ドライブバッファはそれが設計されたキャッチアンドライト作業の多くをすることができます、そして、ウェアレベラーはそれらの4K書き込みすべてを同じドライブ消去ブロックに割り当てさえするかもしれません。シーケンシャル書き込みに近いもの。

実際、私はこれが "4K-64Thrd"書き込みで起こっているのではないかと思います、 "64-Thrd"は 明らかに大きなキュー項目数を使用しています 読み書きする大量のデータ。これにより、大量の書き込みのクラスタ化が引き起こされ、ドライブのシーケンシャル書き込み速度に近づきます。 4K書き込みを実行することにはまだオーバーヘッドがありますが、今度はバッファの可能性を完全に公開しています。テストのReadバージョンでは、ドライブコントローラは非常に一定の重い負荷がかかっていることを認識し、データのプリロードを停止し、おそらくバッファを回避し、代わりに「raw」読み込みモードに切り替えます。

基本的にドライブコントローラは4K書き込みをより効率的にするために something を行うことができます。特にそれらのクラスタが同じ時間に到着する場合は、 single を作ることはできません。 4Kは、特にデータをキャッシュに事前にロードしてデータフローを最適化しようとしている場合は、より効率的に読み取れます。

74
Mokubai

他の回答では、なぜ書くのが読むより速いのかという理由が説明されています。それはあなたがレビューで見つけることができるというベンチマークによって確認されているので、私はこのドライブのためにこれは絶対に正常であることを追加したいと思います。

ArsTecnicaのレビュー

ArsTechnica がドライブを確認しました。バージョン(512 GB)と2 TB oneの両方:

ArsTechnica (このグラフはレビューにすぐには表示されません。最初のギャラリーの5番目のグラフです。クリックする必要があります)

これら2つのモデルのパフォーマンスは非常に似ており、それらの数字はあなたのもののように見えます。ドライブは37 MB /秒で読み取り、151 MB /秒で書き込むことができます。

AnandTechによるレビュー

AnandTech もドライブをレビューしました。彼らは2TBモデルを使用し、キューの深さが1、2、4のテスト結果を平均しました。グラフ

AnandTech 4K readAnandTech 4K write

ドライブは137 MB /秒で読み取り、437 MB /秒で書き込みます。数はあなたのものよりはるかに高いです、しかしそれはおそらくより高いキュー項目数が原因です。とにかく、あなたの場合のように、書き込み速度は読み取り速度の3倍です。

PC Worldのレビュー

PC World によるもう1つのレビュー:1 TBバージョンをテストし、4Kの結果は30 MB /秒です。読み取り用および155 MB /秒(書き込み用) PC World graph 書き込み速度はあなたの速度と一致していますが、ここではドライブの読み取り速度はさらに遅くなります。その結果、比率は5対1であり、3対1ではありません。

結論

このドライブの場合、ランダム4Kの書き込み速度は読み取り速度よりはるかに速いのが普通であることがレビューによって確認されています。テストによっては、さらに5倍速くなることもあります。

あなたのドライブは元気です。それが故障している、またはあなたのシステムに問題があると信じる理由はありません。

16
Fabio Turati

SSDコントローラはオンボードNVRAMに書き込みをキャッシュし、適切なタイミングでそれをフラッシュメディアにフラッシュします。したがって、書き込みレイテンシはキャッシュアクセスレイテンシ、通常は20usです。それとは反対に、読み取りは最大で120-150usのアクセス時間でメディアから配信されます。

8
Andrey Kuzmin

Andreyの答えを拡張して、SSDがコンピュータに操作が完了したことを知らせるために必要なオーバーヘッドを調べる必要があります。

書き込みの場合、データは単に内部RAMキャッシュに書き込まれる必要があります。後でそれをチェックし、誤り訂正しそしてそれを見つけるために必要な他の4kブロックおよびメタデータと共にフラッシュメモリに書き込まれるであろう。

読み取りの場合、SSDは最初にデータを見つけなければなりません。コンピュータが読み込もうとしている場所は論理アドレスと呼ばれ、フラッシュメモリ内のデータの物理的な場所と直接の関係はありません。 SSDは、フラッシュメモリのジオメトリ(セルの配置方法)、不良ブロックの再マッピング、ウェアレベリング、およびその他のさまざまな要因に基づいて、論理アドレスを物理アドレスに変換します。その後、フラッシュからデータを取得してチェックし、必要に応じてブロック全体を別の場所に再書き込みしてエラー訂正を適用する前に、他の操作が完了するのを待つ必要があります。

書き込み操作にかかる総時間は通常の読み取り操作よりも長くなる可能性がありますが、SSDが操作がさらにコマンドを処理できる範囲で完了したことを報告するのにかかる時間は短くなります。大きなブロックではオーバーヘッドは制限要因ではありませんが、多くの小さなブロックでは読み書き速度を制限し始めます。

1
user3241