Ich habe zwei Dell R515-Server mit CentOS 6.5, von denen jeweils einer direkt mit dem anderen verbunden ist. Ich verwende die direkte Verbindung, um Backups vom Hauptserver im Paar jede Nacht mit rsync über ssh auf den sekundären Server zu übertragen. Bei der Überwachung des Datenverkehrs sehe ich einen Durchsatz von ~ 2 MBit / s, was viel weniger ist, als ich von einem Gigabit-Port erwarten würde. Ich habe die MTU auf beiden Seiten auf 9000 eingestellt, aber das schien nichts zu ändern.
Gibt es eine empfohlene Reihe von Einstellungen und Optimierungen, mit denen ich den maximal verfügbaren Durchsatz erzielen kann? Da ich rsync over ssh (oder möglicherweise nur NFS) verwende, um Millionen von Dateien (~ 6 TB kleiner Dateien - ein riesiger Zimbra-Mailspeicher) zu kopieren, müssen die Optimierungen, nach denen ich suche, möglicherweise spezifischer für meinen speziellen Anwendungsfall sein .
Ich benutze ext4 auf beiden Seiten, wenn das wichtig ist
Vielen Dank
BEARBEITEN: Ich habe die folgenden rsync
Optionen mit ziemlich ähnlichen Ergebnissen verwendet:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
Gegenwärtig sehe ich die gleiche schlechte Leistung, wenn ich cp
einen NFS-Export über dieselbe direkte Kabelverbindung verwende.
EDIT2: Nach Abschluss der Synchronisierung konnte ich ausführen iperf
und stellte fest, dass die Leistung bei 990 Mbit / s lag. Die Verlangsamung war auf den tatsächlich verwendeten Datensatz zurückzuführen.
quelle
iperf
.Antworten:
Die Anzahl der Dateien und der SSH-Verschlüsselungsaufwand sind wahrscheinlich die größten Hindernisse. Bei einer solchen Übertragung wird die Übertragungsgeschwindigkeit nicht angezeigt.
Zu den zu verbessernden Optionen gehören:
-e "ssh -c arcfour"
)dd
, ZFS Snapshot Senden / Empfangen etc.tar
netcat (nc
), mbuffer oder eine Kombination davon.tuned-adm
Einstellungen .rsync
Befehl. Wäre hier-W
die Option "Ganze Dateien" sinnvoll? Ist die Komprimierung aktiviert?quelle
iperf
, um sicherzugehen.rsync
und nicht von erstellt wurdecp
. Ich habe gesehenrsync
, dass es viel längercp
dauert, einen Remote-Verzeichnisbaum zu aktualisieren, der ursprünglich erstellt wurde von : 88 GB, aktualisiert mit Prüfsummen in 1h26m statt 3h! Wie Sie das anfängliche Festplattenlayout erstellen, ist entscheidend, um eine gute Update-Leistung zu erzielen. Die CPU-Zeit ist gleich; Die Echtzeit kann sich verdoppeln. (Das gleiche Update ohne Checkumming läuft in 13 Minuten von einer SSD auf eine 200GB Seagate).Wie Sie wahrscheinlich wissen, ist das Kopieren vieler kleiner Dateien (z. B. Postfächer im MailDir-Format oder ähnlichem) definitiv nicht die beste Option, um die Vorteile von Schnittstellen mit hoher Bandbreite zu nutzen. Auch dafür ist SSH wahrscheinlich nicht das beste Transportprotokoll. Ich würde versuchen, tar zu verwenden, um einen Tarball auf dem Quellhost zu erstellen, bevor er an den sekundären Host gesendet wird.
Wenn Sie eine Teilsicherung benötigen, können Sie die
-g
Optionen von tar ausprobieren . Wenn Sie den Throuput noch maximieren müssen, versuchen Sie, netcat anstelle von ssh zu verwenden.quelle
dd
durchnc
dann. aber imVersuchen Sie, die beitragenden Faktoren auseinanderzuhalten:
und testen sie unabhängig.
Ich habe einige schlechte Erfahrungen mit Broadcom-Treibern gemacht, daher ist mein erster Vorschlag, die nutzbare Netzwerkbandbreite zu testen mit:
dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null
quelle