LinuxでNVME SSDのパフォーマンスが低下する

LinuxでNVME SSDのパフォーマンスが低下する

順次読み込みが比較的遅いのはなぜですか?

Win10のCrystalDiskMarkは約5GB / s(読み取りと書き込み)を報告しますが、Linuxでのパフォーマンスはそれには至りません。 (Windowsで同じドライブに数百GBをコピーして貼り付ける平均速度は約2.5GB / sなので、ここではCDMが実際の値と大きく変わらないと思います。)

単純な dd if=/dev/nvme0n1 of=/dev/null bs=1M count=10k 報告はわずか1.5GB/sです。

他のNVME(どちらもCorsair Force MP600 1TB)では、ddは1.4GB / sを報告します。

私はこのようなシーケンシャルアクセスがすべてのストレージデバイスから読み取るのに最適なケースであると期待しているので、ここで何が起こっているのか実際にはわかりません。

(StackExchangeでいくつかの同様の質問を見たことがありますが、すべてこの「簡単な質問」とは異なる方向に進みます。)

注:私が正確に覚えている場合、CrystalDiskMarkは「実際のファイル」を使用します。したがって、追加のファイルシステムのオーバーヘッドもあり、dd呼び出しが可能な限り最高でなければなりません。そうではありませんか?

システムメッセージ:

  • どちらのNVMEも4つのPCIe 4.0レーンを介して接続されています。
  • 両方のNVMEの温度< 60℃
  • ルートとしてマウントする速度が速いほど、削除速度が遅くなります。
  • Zen2 Threadripper(したがって、PCIe 4.0レーンで十分です...)
  • カーネル 5.6.4
  • BIOSアップデート
  • NVMEファームウェアアップデート

正しい方向へのアイデアやアドバイスは大変感謝します!

ベストアンサー1

犯人は順次アプローチです。 NVME は、同時要求が多い場合にのみパフォーマンスを示します。したがって、「cp」は、dd と hdparm と同様に、単一の [順次] 読み取りのみを発生させます。 「並列性」などのトリックを使用してファイルごとにcpプロセスを作成すると、全体のスループットが向上します。大容量ファイルの場合でも、Windowsエクスプローラはこれを行うことができるようです(複数のセグメントを並列にコピー - 少なくとも私が推測しているのはそうです)。

おすすめ記事