コマンドで何が起こるか
sudo dd if=/dev/zero of=/dev/null bs=500M count=1.
ゼロは実際にどこに行き、一般的に何が起こりますか?速度は905 MB / sです
ramdiskにddした場合、速度は388 MB / sのみです。そして、私ddは私のHDDに速度がわずか63.2 MB /秒です
コマンドで何が起こるか
sudo dd if=/dev/zero of=/dev/null bs=500M count=1.
ゼロは実際にどこに行き、一般的に何が起こりますか?速度は905 MB / sです
ramdiskにddした場合、速度は388 MB / sのみです。そして、私ddは私のHDDに速度がわずか63.2 MB /秒です
回答:
/dev/zero読み取り時にゼロバイトの無限ストリームを提供します。この関数はカーネルによって提供され、メモリを割り当てる必要はありません。への書き込み/dev/nullはすべて静かにドロップされます。
その結果、を実行するddと、システムはゼロバイトで500メガバイトを生成しますが、これらは単に破棄されます。一時バッファを除き、この操作の前、最中、または後にデータは保存されません。
以下からの転送の速さ/dev/zeroには/dev/null、プロセッサと関連するシステムのコールの速度によって主に決定されます。(あなたの場合、バッファは500 MBの大きさであるため、操作はメモリの速度もテストします。)
このコマンドを翻訳します:
dd if=/dev/zero of=/dev/null bs=500M count=1
重複データ(dd入力ファイルから)(ifの)/dev/zero(の仮想無限供給0出力ファイルへの)(ofの)/dev/null500Mサイズのブロック(使用(仮想シンクホール)bs=ブロックサイズ)と(これを繰り返すcount)だけ(回1)。
一般的に、このコマンドはメモリとバスの速度のみを測定する必要があります。ただし、500MBのRAMがない場合は失敗する可能性があります。したがって、ある意味では、OSが大きなメモリチャンクを割り当てる速度を暗黙的にベンチマークすることもできます。
/ dev / nullはブラックホールです。通常のファイルのように実際にディスクに書き込むわけではないため、通常の書き込み操作をテストする場合は正確ではありません。ヘッドをディスクに書き込むのではなく、デバイスに書き込むとすぐにデータが破棄されるため、通常のローカル書き込みよりも常に高速になります。
/ dev / zeroは読み取りについても同様です。読み取るために頭の動きを必要とせず、ヌル文字の無限の供給であるため、ローカルの読み取りよりも常に速く読み取ります。
言い換えれば、これはボイドでのテストに似ており、通常のローカル読み取りと書き込みが何をもたらすべきかを正確に把握することはできません。
/dev/null読み取り操作のテスト/タイミングに適した宛先です。 書き込み操作の/dev/zeroテスト/タイミングの良いソースです。このソースと宛先を1つの操作に組み合わせることはあまり意味がありません。これが意味のあるオーバーヘッド数を提供するかどうかさえもわかりません。