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 htop
ve ş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_WBYTES
oldukça normal görünüyor, ancak IO_RBYTES
4 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_RBYTES
ya IO_WBYTES
.
Bunun herhangi bir programa özgü olmadığını düşünüyorum, ancak neden okuma /dev/zero
ve yazma /dev/{zero,null}
/ yazma olarak yazmıyor?
/dev/null
bö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.