rsync
외장 하드 드라이브와 내장 하드 드라이브 사이에 데이터를 전송하기 위해 세 가지 프로그램을 동시에 실행하기 시작했습니다 . 작업이 완료되었을 때 타이밍 결과를 얻었습니다.
$ time rsync -a /media/t/1/ ./
real 236m14.131s
user 22m57.025s
sys 12m35.219s
$ time rsync -a /media/t/2/ ./
real 106m45.245s
user 3m6.938s
sys 1m25.902s
$ time rsync -a /media/t/3/ ./
real 55m48.494s
user 2m6.053s
sys 0m52.557s
실제와 user+sys의 큰 차이점은 주로 rsync
외부 하드 드라이브와 내부 하드 드라이브 간의 IO 작업을 수행하고 IO 작업은 CPU가 아니라 DMA 또는 두 하드 드라이브의 컨트롤러에서 실행되므로 항목 사용자입니다. 아니면 시스템 시간이 계산되지 않습니까?
알아채다
각
rsync
프로세스는 다중 스레드일 수 있으므로 사용자 + 시스템 시간이 늘어납니다.상반기에는 3개의 프로그램이 동시에 운영되면서 IO? 실시간에 많은 기여를 할 수 있을까요?
첫 번째 프로그램은 108GB를 전송하고, 두 번째 프로그램은 17GB, 세 번째 프로그램은 12GB를 전송합니다.
내 운영 체제는 Ubuntu 14.04 64비트이고 컴퓨터는 Thinkpad T400입니다.
답변1
디스크 I/O가 발생하면 CPU를 다른 목적으로 사용할 수 있으므로 프로세스의 CPU 시간(사용자 및 시스템 데이터)에 포함되지 않습니다. 이는 짐작하셨듯이 작업이 디스크에서 이루어지기 때문입니다(아마도 디스크 보드에 납땜되는 마이크로컨트롤러의 수가 점점 늘어나고 있기 때문일 것입니다).