/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 文字が無限に供給されるだけなので、ローカル読み取りよりも常に高速に読み取ります。
言い換えれば、これは空白でのテストのようなものであり、通常のローカル読み取りと書き込みで何が得られるかを正確に把握することはできません。