이 명령을 사용하여 일부 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
4KiB로 유지되며 변경되지 않습니다.
예를 들어 몇 가지 다른 프로그램을 실행했습니다.
dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
그리고 그들 중 누구도 많이 발생하지보고 놀랐습니다 IO_RBYTES
나 IO_WBYTES
.
나는 이것이 어떤 프로그램에만 국한되지는 않지만 I / O 바이트 /dev/zero
로 /dev/{zero,null}
계산 하기 위해 읽고 쓰지 않는 이유는 무엇입니까?
답변
I / O로 계산되지만보고있는 필드에 의해 측정 된 유형은 아닙니다.
에서는 htop
, IO_RBYTES
및 IO_WBYTES
쇼 read_bytes
와 write_bytes
의 필드를 /proc/<pid>/io
, 그 필드는 블록 층을 통과 바이트를 측정한다. /dev/zero
블록 레이어를 포함하지 않으므로 읽기는 표시되지 않습니다.
에서 I / O를 참조하십시오 /dev/zero
당신이 볼 필요가, rchar
그리고 wchar
필드 /proc/<pid>/io
에 표시, htop
같은 RCHAR
과 WCHAR
:
rchar : 문자 읽기
스토리지에서이 태스크를 읽은 바이트 수입니다. 이것은 단순히이 프로세스가 전달한 바이트
read(2)
와 유사한 시스템 호출 의 합계입니다 . 여기에는 터미널 I / O와 같은 것이 포함되며 실제 물리 디스크 I / O가 필요한지 여부에 영향을받지 않습니다 (읽기가 pagecache에서 만족되었을 수 있음).wchar : 문자 쓰기
이 작업으로 인해 발생했거나 디스크에 기록되는 바이트 수입니다. rchar와 비슷한 경고가 여기에 적용됩니다.
참조 man 5 proc
및 man 1 htop
자세한 내용은.