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時間(ユーザーとシステムデータ)には含まれません。これは、私が推測したように、作業がディスク上で行われているためです(おそらくディスクボードにはんだ付けされるマイクロコントローラの数が増えているからです)。