rsync hängt gerade und erstellt eine Dateiliste

20
[root@centos /]# rsync -av --exclude thumbs /storage [email protected]:/storage
[email protected]'s password: 
building file list ... 

Ich habe ungefähr eine Stunde gesessen ... es sind 135 GB Bilder und Ordner

/storage ist ein gemountetes ext3-SCSI-Laufwerk.

Ist es normal, dass rsync so lange sitzt und die Dateien / Verzeichnisse berechnet?

Andrew Fashion
quelle
Wie viele Dateien? Bei sehr vielen Dateien dauert es eine Weile.
Helvick
wahrscheinlich Tausende ... Bilderverzeichnis von User-Uploads ...
Andrew Fashion
Ich habe gesehen, dass dieser Teil von rsync weit über eine Stunde dauert, wenn es Tausende und Abertausende von Dateien gibt. Wenn Sie "top" laufen, sehen Sie dann, wie ich / ich warte?
troyengel
Kannst du df -iuns, nur weil ich neugierig bin, sagen, was du für IUsedein Lager hast ? Es wird uns eine ungefähre Vorstellung davon geben, wie viele Dateien und Ordner Sie haben.
Zoredache
1383641, ist das die Anzahl der Dateien?
Andrew Fashion

Antworten:

24

rsync 2.x erstellt im Vorfeld eine vollständige Dateiliste.

Wenn Sie die -POption hinzufügen, wird eine Fortschrittsanzeige angezeigt.

Wenn Sie denken, dass es wirklich hängt, suchen Sie in einem anderen Terminal die pid von rsync und dann

  1. Laufen Sie strace -p PIDund sehen Sie, was es tut. (Drücken Sie ^ C, um anzuhalten.)

  2. Führen ps -o wchan PIDSie den Befehl aus, um zu sehen, wo sich der Kernel befindet.

Poolie
quelle
Wow straceist cool! Sie werden wahrscheinlich feststellen, dass etwas Zirkuläres passiert: Wie ein Link, der auf eines seiner Vorfahrenverzeichnisse verweist. In meinem Fall habe ich ein virtuelles Dateisystem verwendet, dessen Tiefe unbegrenzt war, dh es hatte "unendlich" viele Unterverzeichnissetagfs/books/+/books/+/books/+/ ...
Zaz
@Zaz Ich habe auch eine große Anzahl von Unterverzeichnissen in der Tiefe. Aber das liegt in meinem Systemdesign. Gibt es einen Weg, dies zu lösen?
user1641443
@ user1641443: Es tut mir leid, das ist mir ein Rätsel.
Zaz
@ user1641443: 1: Versuchen Sie es mit rsync> 3.0, wie Martin sagt . 2: Führen Sie mehrere rsync-Prozesse in einem kleineren Teilbaum aus. 3: Öffnen Sie Ihre eigene Frage.
Poolie
15

Sie sollten ein Upgrade rsync 3.0.x , wo Sie den Vorteil der inkrementellen Datei - Listen erhalten werden, erklärt hier . Ich synchronisiere Millionen von Bildern (insgesamt ~ 200 GB) und habe eine enorme Beschleunigung festgestellt, als ich von rsync 2.x auf 3.x gewechselt bin.

Trotzdem wird es wahrscheinlich lange dauern, bis alle diese Daten durchgegangen sind. In meinem Fall dauert es immer noch über eine Stunde zwischen zwei ziemlich leistungsstarken DL380 G5-Servern.

Martin
quelle
Beachten Sie auch, dass bestimmte Flags das alte Verhalten erzwingen. für mich war es --delay-updates.
Xiong Chiamiov
1
@XiongChiamiov Die einzigen Optionen, die ich verwende, sind "-a" und "--progress". Version 3.1.x erstellt noch eine inkrementelle Dateiliste. Warum?
Michael
3

Sie bemerkt früher , dass duauch hing. Etwas ist mit diesem Dateisystem nicht in Ordnung und rsynctrifft das, was es duwar.

Sie können schnell nach Kernelfehlermeldungen suchen, die auf ein Festplattenproblem hinweisen. Tippe dmesgund sieh, was unten ist.

mattdm
quelle
1

Der Stillstand nach der Meldung "Dateiliste wird erstellt ..." kann durch eine MTU-Nichtübereinstimmung verursacht werden, z. B. wenn Sie die Netzwerkschnittstellen mit MTU 9000 eingerichtet haben, aber nicht die Umschaltung zwischen kleinen Paketen (wie das Herstellen einer Verbindung zum rsync-Server). wird durchlaufen, aber nicht größer (wie das Senden der Dateiliste).

Der Mutator
quelle
Nach langem Suchen stieß ich auf dieses Problem und musste überprüfen, ob Rsync über einen VPN mit Standard 1450 MTU ausgeführt wurde. Ich habe jedoch keine Kontrolle über die Geräte zwischen den Standorten rsync funktioniert zu 100% (und plötzlich verschwand auch andere Seltsamkeiten im Netzwerk!) danke!
10.
0

Gestützt auf diese und Ihre andere Frage des du /storageHängens lässt mich denken, dass weder duoder rsyncdas Problem ist, sondern es gibt einige Probleme mit /storage.

Mark Wagner
quelle