/ dev / zeroから/ dev / nullへのDD…実際に何が起こるか


12

コマンドで何が起こるか

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 /秒です


1
/dev/null読み取り操作のテスト/タイミングに適した宛先です。 書き込み操作の/dev/zeroテスト/タイミングの良いソースです。このソースと宛先を1つの操作に組み合わせることはあまり意味がありません。これが意味のあるオーバーヘッド数を提供するかどうかさえもわかりません。
おがくず

@sawdust他の方法はありませんか?
ジェイミー14

2
はい、@ sawdust、上記のコメントは厄介です(初心者向け)。誰かのハードドライブのパーティションを上書きします=は/ dev / sdaに、内容など=〜/ bigfile.tmp使用する方の例だっただろう...のの
ケビンTraas

2
私はパーティーにかなり遅れていることを知っていますが、誰かがこれを自分で試してみたい場合:rootとしてこのコマンドを実行する必要がないため、sudoは必要ありません。
ロエルシュレーベン16

@ジェイミーナ、それは正しい方法です。
AWN

回答:


14

/dev/zero読み取り時にゼロバイトの無限ストリームを提供します。この関数はカーネルによって提供され、メモリを割り当てる必要はありません。への書き込み/dev/nullはすべて静かにドロップされます。

その結果、を実行するddと、システムはゼロバイトで500メガバイトを生成しますが、これらは単に破棄されます。一時バッファを除き、この操作の前、最中、または後にデータは保存されません。

以下からの転送の速さ/dev/zeroには/dev/null、プロセッサと関連するシステムのコールの速度によって主に決定されます。(あなたの場合、バッファは500 MBの大きさであるため、操作はメモリの速度もテストします。)


7

このコマンドを翻訳します:

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が大きなメモリチャンクを割り当てる速度を暗黙的にベンチマークすることもできます。


メモリを測定する場合、ラムディスクへの書き込みが大幅に遅くなるのはなぜですか?
agz 19

2
ラムディスクはファイルシステムを持つようにフォーマットする必要があり、カーネルドライバーで管理する必要があります。また、ramdiskへの書き込みには、ユーザー空間からカーネル空間にデータをコピーするオーバーヘッドがあります-完全に無料ではありません。/ dev / zeroまたは/ dev / nullを使用すると、このオーバーヘッドはほぼゼロになります。
mvp

「重複データ」を見たことはありませんでした。古いSunOSのマニュアルページで、ddが「コピー&コンバージョン」を表していることを思い出しました(ccを使用)。
ダンプリッツ

5

/ dev / nullはブラックホールです。通常のファイルのように実際にディスクに書き込むわけではないため、通常の書き込み操作をテストする場合は正確ではありません。ヘッドをディスクに書き込むのではなく、デバイスに書き込むとすぐにデータが破棄されるため、通常のローカル書き込みよりも常に高速になります。

/ dev / zeroは読み取りについても同様です。読み取るために頭の動きを必要とせず、ヌル文字の無限の供給であるため、ローカルの読み取りよりも常に速く読み取ります。

言い換えれば、これはボイドでのテストに似ており、通常のローカル読み取りと書き込みが何をもたらすべきかを正確に把握することはできません。


ラムも関与していません...だから、このテストは...クロック速度とは何ですか?
agz

1
  1. /dev/nullどこにもありません。書き込まれたデータは単に削除されます。

  2. ramdiskには使用するファイルシステムがあります。ddファイルシステムエントリを作成し、ファイルシステムのルールに従って書き込む必要があります。また、OSは他の目的でメモリを同時に使用しているため、書き込み操作で残っているものが取得されます。

  3. SSD以外のハードドライブは単純に遅いため、これも正しいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.