2016-07-10 14 views
0

Ich verwende Rsync, um einen Ordner von 60G zwischen meinem Laptop und einem externen USB-Laufwerk zu sichern. Nur 4G Daten wurden hinzugefügt. Es dauerte eine lange Zeit bis zum Ende: 2 Stunden. HierWarum ist rsync so langsam?

ist der Befehl:

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

Haben Sie eine Erklärung? Was verlangsamt rsync mehr: viele kleine Dateien oder große Binärdateien (Fotos)?

Antwort

2

Da ich Ihr System nicht genau kenne, mache ich hier ein paar Annahmen. Wenn sie nicht zu Ihrer Situation passen, erklären Sie bitte Ihre Frage und ich werde meine Antwort gerne aktualisieren.

Ich gehe davon aus, dass Sie viele Dateien haben, unabhängig von deren Größe an dem Ort, von dem Sie kopieren. Dies führt zu einem relativ langsamen Rsync, der durch das Design des rsync-Protokolls verursacht wird.

rsync funktioniert wie folgt:

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. 

Wenn Sie nur ein paar Dateien haben, dies offensichtlich schneller sein wird als für viele Dateien. Ihr USB-Laufwerk ist möglicherweise Ihr Engpass, da das Abrufen der Größe und des Zeitstempels eine Menge Sprünge in der Inode-Tabelle verursacht.

Vielleicht kann Ihnen ein Tool wie iotop (falls Sie unter Linux ähnliche Tools für fast alle Plattformen zur Verfügung haben) helfen, den Engpass zu identifizieren.

Die Option --delete kann auch eine langsame Rsync verursachen, wenn das Abrufen der vollständigen Dateiliste des Zielspeicherorts langsam ist (was wahrscheinlich für eine externe, rotierende USB-Festplatte ist). Um zu verifizieren, dass dies das Problem ist, geben Sie in jedes Betriebssystem mit einer Bash einfach time ls -Ral <target-location> > filelist.txt ein (die Ausgabe wird in eine Datei umgeleitet, da das Ausgeben von Daten auf dem Bildschirm viel langsamer ist). Wenn dies viel länger dauert als für Ihre Quelldiskette, könnte Ihre Zieldiskette der Flaschenhals sein.