GNU/Linux >> Linux の 問題 >  >> Linux

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

/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 の仮想無限供給 's) を出力ファイル (of ) の /dev/null (仮想シンクホール) 500M サイズのブロックを使用 (bs =ブロック サイズ) を繰り返します (count ) 1 回だけ (1 ).

一般に、このコマンドはメモリとバスの速度のみを測定する必要があります。ただし、500MB の RAM が利用できない場合、失敗する可能性があります。したがって、ある意味では、OS が大きなメモリ チャンクを割り当てる速度を暗黙的にベンチマークすることにもなります。


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

/dev/zero は読み取りの場合と同様です。読み取るために頭を動かす必要はありません。null 文字が無限に供給されるだけなので、ローカル読み取りよりも常に高速に読み取ります。

言い換えれば、これは空白でのテストのようなものであり、通常のローカル読み取りと書き込みで何が得られるかを正確に把握することはできません。


Linux
  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  3. Linux の /dev/zero および /dev/null ファイルとは

  1. /dev/random または /dev/urandom を base64 でエンコードする方法は?

  2. screen 端末 '/dev/pts/0' を開けません - 確認してください

  3. カーネル:/dev/kmem と /dev/mem を無効化

  1. Linux が /dev/tty と /dev/tty0 を使用する方法

  2. Linux で /dev/random を /dev/urandom にリンクするのは間違っていますか?

  3. echo または print /dev/stdin /dev/stdout /dev/stderr