Haben Sie einen Grund anzunehmen, dass es in irgendeiner Weise CPU-gebunden ist?
Chopper3
Welche rsync-Optionen verwenden Sie?
Kyle Smith
Verwenden Sie ssh als Transportmittel?
JimB
rsync -avSPp Und es gibt keine CPU- oder Festplattenprobleme.
Tom van Ommen
Und kein SSH-Transport hat gerade etwas im Web gesehen, das nicht weiß, ob es schneller ist. Es dauert schon ewig, alle Dateien zu indizieren.
Tom van Ommen
Antworten:
7
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?
Synchronisieren von Zarafa-Anhangsdateien, alle standardmäßig komprimiert. Ich könnte mehrere Instanzen ausführen, aber das ist weniger effizient als 10 Threads. Und das Netzwerk ist 1 GBit bis 1 GBit, aber verschiedene Rechenzentren, aber es sollte kein Problem sein. habe 24 SAS-Festplatten auf der Quellseite und intelligenten Speicher mit SSD auf dem Ziel.
Tom van Ommen
1
@ Tom van Ommen - warum denkst du, bist du CPU-begrenzt? Wie sind mehrere Prozesse weniger effizient als Threads, wenn Sie wirklich CPU-begrenzt sind?
JimB
1
@ Tom van Ommen, 10 Prozesse haben mehr Overhead als 10 Threads; Das Sperren von Datenstrukturen zwischen Threads ist jedoch ein Alptraum für die Codierung. Es ist oft viel effizienter (für die Zeit des Codierers), einfach mehrere Prozesse zu erzeugen und damit fertig zu werden
Mike Pennington
1
@ Guacamole - Mehrere Threads können in einigen Situationen hilfreich sein, aber wenn sein Link gesättigt ist, wird er nicht mehr durchschieben, egal wie viele Threads er hat. Rsync verwendet Threads für die Parallelität und blockiert E / A nicht intern.
JimB
1
@ Guacamole - Ich möchte nur darauf hinweisen, dass sein Durchsatz bei Verwendung von ssh als Transportmittel durch ssh selbst begrenzt ist (insbesondere durch das statische Empfangsfenster, sofern er nicht die HPN-ssh-Patches verwendet).
JimB
1
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.
Leider ist der Link tot. Könnten Sie es wieder finden?
P.Péter
1
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.
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
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?
quelle
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
quelle
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.
quelle
Sie können den Multithread-CP-Klon für Linux (Open Source) auschecken : http://static.usenix.org/event/lisa10/tech/slides/kolano.pdf
quelle