2016-07-10 14 views
0

私はラップトップと外付けUSBドライブの間で60Gのフォルダをバックアップするためにrsyncを使用します。わずか4Gのデータが追加されました。 2時間の仕上げには時間がかかりました。ここでなぜrsyncが遅いのですか?

はコマンドです:

rsync -av --exclude=target/ --exclude=".git/" --delete --link-dest=$destdir/backup.1 $element $destdir/backup.0 

あなたは説明を持っていますか? 何がrsyncの速度を遅らせますか:たくさんの小さなファイルや大きなバイナリファイル(写真)がありますか?

答えて

2

私はあなたのシステムを正確に知らないので、私はここでいくつかの仮定をしています。あなたの状況に合っていない場合は、質問を明確にしてください。私は喜んで答えを更新します。

私は関係なく、その大きさあなたからコピーされた場所で、あなたはたくさんのファイルを持っていないと仮定しています。これは、rsyncプロトコルの設計によって引き起こされるかなり遅いrsyncを引き起こします。

rsyncがこのように動作します:

1. Build a file-list of the source location. 

2. For all files in the source location: 

    a. Get the size and the mtime (modification timestamp) 
    b. Compare it with the size and mtime of the copy in the destination location 
    c. If they differ, copy the file from the source to the destination 

Done. 

あなただけのいくつかのファイルがある場合、これは明らかに多くのファイルよりも速くなります。サイズとタイムスタンプを取得すると、iノードテーブルに多くのジャンプが作成されるため、USBドライブがボトルネックになる可能性があります。

はたぶん(Linux上で、同様のツールは、ほとんどすべてのプラットフォームで利用可能なあなたのケースでは)iotopのようなツールを使用すると、ボトルネックを特定するのに役立ちます。

--deleteオプションを使用すると、ターゲット位置の完全なファイルリストを取得する速度が遅い場合(外部の回転するUSB​​ディスクの可能性が高い)、遅いrsyncが発生する可能性があります。これが問題であることを確認するには、bashを使用しているすべてのOSで、time ls -Ral <target-location> > filelist.txtと入力します(画面にデータを出力するのが遅くなるため、出力をファイルに振り分ける)。これがソースディスクよりも時間がかかる場合は、ターゲットディスクがボトルネックになる可能性があります。

関連する問題