NVMe SSDでddがなぜそんなに遅いのですか?

NVMe SSDでddがなぜそんなに遅いのですか?

最近見ました。この動画ここで、著者は、ddコマンドを使用するときにRAMディスクがHDD / SSDよりはるかに高速であることを説明します。私はこれがなぜそうなのか理解しています。しかし、私が理解していないのは、dd if=/dev/zero of=test.iso bs=1M count=800016GB RAM、12コアRyzen 3600X CPU、および定格NVMe SSDを搭載したシステムで彼のサンプルコマンドを実行すると、書き込み速度が220MB / sで書き込み速度が速い理由です。 5GB/sと。

RAMがいつも早いということは分かりますが、遅すぎるようで、何か違うことが起きているようです。これが彼がコマンドを使用する方法ですかdd?内部の内容はわかりませんが、ddシステムのパフォーマンスが制限されている場合ですか、それともコマンドが誤って使用されていますか?

注:まったく同じコマンドを2回目の連続で実行した後、2回目の書き込みは1.4GB / sに速くなりましたが、混乱は解消されません。

ベストアンサー1

SSDなどのNANDフラッシュメディアには、最小ブロック消去サイズがあります。つまり、ddより小さいブロックサイズを使用してデータを保存する場合、SSDコントローラはブロック内の位置を書き込むためにブロックを複数回消去する必要があります。最小ブロック削除サイズが4Mの場合、1Mはブロックを4回以上書き換える必要があることを意味します。 SSDは同じ4Mブロックを4回クリアする必要があります。

dd2番目に同じコマンドを実行すると速度が速くなるという事実は、コマンドが繰り返されたときに表示されるのと同様に、カーネル、ドライバ、およびコントローラのキャッシュおよび内部最適化によって説明できますfind

私の言葉は良い答え詳細と@greg-kennedy最小削除ブロックサイズを見つけるスクリプトdd、最高のパフォーマンスを得るには、ブロックサイズ値として使用する必要があります。

/sys/class/mtd/mtdx/erasesize場合によっては、個々のデバイスに応じてデバイスの仕様または読み取りによって見つけることができます。

おすすめ記事