rsyncが使用する実際の時間とusr + sysの時間の大きな違いを理解していますか?

rsyncが使用する実際の時間とusr + sysの時間の大きな違いを理解していますか?

rsync外付けハードドライブと内蔵ハードドライブ間でデータを転送するために、3つのプログラムを同時に実行し始めました。ジョブが完了した時点でタイミング結果が得られた。

$ 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または2つのハードドライブのコントローラで実行されるため、エントリユーザーです。それともシステム時間は計算されませんか?

気づく

  • rsyncプロセスはマルチスレッドである可能性があるため、ユーザー+システム時間が長くなります。

  • 上半期には3つのプログラムが同時に運営され、IO?リアルタイムで多くの貢献ができますか?

  • 最初のプログラムは108GBを転送し、2番目のプログラムは17GB、3番目のプログラムは12GBを転送します。

  • 私のオペレーティングシステムはUbuntu 14.04 64ビットで、コンピュータはThinkpad T400です。

答え1

ディスクI / Oが発生すると、CPUは他の目的に使用できるため、プロセスのCPU時間(ユーザーとシステムデータ)には含まれません。これは、私が推測したように、作業がディスク上で行われているためです(おそらくディスクボードにはんだ付けされるマイクロコントローラの数が増えているからです)。

関連情報