次のコマンドを使用して、Linux 4.x OSのハードドライブを空にします。
sudo sh -c 'pv -pterb /dev/zero > /dev/sda'
そして、別のttyを開いて開始しsudo htop
、これに気付きました:
PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command
4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero
の値IO_WBYTES
は非常に正常なように見えますIO_RBYTES
が、4 KiBのままであり、変更されることはありません。
他のいくつかのプログラムを実行しました、例えば
dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
そして、それらのどれもが多くIO_RBYTES
またはを生成しないのに驚いたIO_WBYTES
。
私は、これは、任意のプログラムに固有のものではないと思いますが、から読み込むない理由/dev/zero
と書き込みをするために/dev/{zero,null}
I / Oバイトとしてカウント?
/dev/null
そのようなハードウェアに接続することはなく、I / Oバスを詰まらせないでください。極端に撮影。メモリへの/メモリからの読み取り/書き込みもI / Oですか?もちろん、これらの事柄について明確な描写はありません。すべては、あなたがこれらの事柄をどの視点で捉えるか、そしてその視点があなたにとってどれだけ役に立つかによって決まります。
/dev/{null,zero}
(通常はボトルネックではない)実際のハードウェア(ボトルネックになる可能性が高い)へのI / O統計にもっと興味があります。それは私の視点です:)
read(2)
と考えてwrite(2)
いました。これは、それ自体の意味で非常に合理的です。