Im Moment verwende ich rsync für 2,2 Millionen Dateien mit insgesamt 250 GB und das dauert nur 700.000 Dateien in 6 Stunden.
Kennt jemand ein rsync-ähnliches Tool, das dies mit mehreren Threads tun kann, damit es schneller geht?
Im Moment verwende ich rsync für 2,2 Millionen Dateien mit insgesamt 250 GB und das dauert nur 700.000 Dateien in 6 Stunden.
Kennt jemand ein rsync-ähnliches Tool, das dies mit mehreren Threads tun kann, damit es schneller geht?
Antworten:
Ich bezweifle, dass CPU hier der begrenzende Faktor ist. Sie sind höchstwahrscheinlich sowohl durch die Netzwerkbandbreite für die Übertragung als auch durch die Festplatten-E / A begrenzt. besonders die Latenz für all diese stat-Aufrufe.
Können Sie die Dateisystemhierarchie in kleinere Teile aufteilen, um sie parallel zu verarbeiten?
Was sind die Quelldateien und was schreibt oder modifiziert sie? Wäre es möglich, Änderungen auf Anwendungsebene zu senden?
Wenn das Festplattensubsystem des empfangenden Servers ein Array mit mehreren Festplatten ist, kann das Ausführen mehrerer rsync-Prozesse die Leistung verbessern. Ich führe 3 rsync-Prozesse aus, um Dateien auf einen NFS-Server (RAID6 mit 6 Festplatten pro RAID-Gruppe) zu kopieren und Gigabit-Ethernet zu sättigen.
Dieser Typ berichtet über ein grundlegendes Python-Gurtzeug, das mehrere Rsync-Prozesse erzeugt. Http://www.reliam.com/company/featured_geek
Ich habe viele ähnliche Fragen gelesen. Ich denke, die einzige wirkliche Antwort ist, das Kopieren / Verschieben manuell aufzubrechen. IOps werden hier das Problem sein. Wenn Sie sich dadurch besser fühlen, bin ich dabei, ~ 200 Millionen Dateien zu verschieben, die weit über 100 TB Speicherplatz beanspruchen.
Sie können den Multithread-CP-Klon für Linux (Open Source) auschecken : http://static.usenix.org/event/lisa10/tech/slides/kolano.pdf