Bu komutu kullanarak bazı Linux 4.x işletim sistemlerinde bir sabit sürücüyü boşaltıyorum:
sudo sh -c 'pv -pterb /dev/zero > /dev/sda'
Bir tane daha açtım sudo htopve şunu fark ettim:
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
Değeri IO_WBYTESoldukça normal görünüyor, ancak IO_RBYTES4 KiB'de kalıyor ve hiçbir zaman değişmiyor.
Mesela birkaç başka program çalıştırdım.
dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
ve bunların hiçbiri bir sürü oluşturur görmek şaşırdı IO_RBYTESya IO_WBYTES.
Bunun herhangi bir programa özgü olmadığını düşünüyorum, ancak neden okuma /dev/zerove yazma /dev/{zero,null}/ yazma olarak yazmıyor?
/dev/nullböyle bir donanıma arabirim kurmakla kalmıyor ve G / Ç otobüslerini tıkamıyor. Aşırı alınan; G / Ç de belleğe / belleğe okur / yazar? Elbette, bunlar için kesin bir açıklama yoktur ve bunların tümü, bu şeylerde hangi perspektifi aldığınıza ve bu perspektifin sizin için olmasının ne kadar yararlı olduğuna bağlıdır.
/dev/{null,zero}(genellikle bir darboğaz olmadığından) , I / O istatistiklerine daha fazla ilgi duyardım. Bu sadece benim bakış
read(2)ve write(2)kendi anlamda çok makul I / O gibi sayar.