rsync에서 사용하는 실제 시간과 usr+sys 시간 사이의 큰 차이를 이해하십니까?

rsync에서 사용하는 실제 시간과 usr+sys 시간 사이의 큰 차이를 이해하십니까?

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 시간(사용자 및 시스템 데이터)에 포함되지 않습니다. 이는 짐작하셨듯이 작업이 디스크에서 이루어지기 때문입니다(아마도 디스크 보드에 납땜되는 마이크로컨트롤러의 수가 점점 늘어나고 있기 때문일 것입니다).

관련 정보