RAWデバイスでは書き込みが遅いですが、ファイルシステム(USBキー)では書き込みが速いのはなぜですか?

RAWデバイスでは書き込みが遅いですが、ファイルシステム(USBキー)では書き込みが速いのはなぜですか?

USBキーがあります(PQI U822V-極端速度32G)Linuxでfast'n'dirtyをベンチマークしようとしています。書き込み帯域幅をテストしています。

dd生パーティションに

セクタ2048で始まるパーティションを作成し、4GBの順次書き込みを実行しました。

dd if=/dev/zero of=/dev/sdb1 bs=1M count=4096

私の速度は約22MB / sです。

ddまた、上記のようないくつかの(4)並列実行を試みましたが、count=1024オプションseek=を使用してドライブの他の領域に書き込みました。結果は同じです。

ddファイルシステムで

ただし、次のように or を使用してパーティションをフォーマットし、大容量sdb1ファイルをそのパーティションにコピーする(実際または):ext4NTFS/dev/zero

time dd if=/dev/zero of=/media/USBKEY/file.bin bs=1M count=4096 ; time sync

メーカーが広告したように>66MB/sを達成しました。もちろんsyncコピー以降の持続時間も考えています。

なぜそんなに大きなパフォーマンスの違いがありますか?

ベストアンサー1

今また見たらハードドライブではなくUSBキー(フラッシュドライブ)と言われましたね。フラッシュメモリは大きな塊としてのみ消去でき、個々のセクタは最初にそのセクタ(およびそのセクタを含むブロック全体)を消去しないと書き込むことはできません。ソフトウェアはいつでもディスクに必要な内容を書き込めるようにしたいので、削除を透過的に処理するための変換ロジックがディスクにあります。これを行う方法は、書き込みパフォーマンスに大きな影響を与える可能性があります。多くのデバイスは順次書き込みをうまく処理しますが、ランダム書き込みには不十分なアルゴリズムをほとんどのディスクに使用します。ディスクの先頭に近い領域は、通常、事前フォーマットされたFATファイルシステムでFATによって使用され、この領域はランダムに書き込まれることが多いため、この領域に異なるアルゴリズムを使用します。これは順次記録するのは遅いですが、ランダム書き込みは悪くありません。 。

だから私は今、私がコメントとして追加した初期の推測が正しいと確信しています。ファイルシステムに書き込むときにディスクの残りの部分のパフォーマンスを見て、オフセット0でddを実行すると、太った領域に書き込むことができます。数百MBの追加ターゲットを探している場合は、速度が大幅に向上します。

おすすめ記事