Ich habe eine neue Festplatte für meinen Server gekauft und versuche, meine Dateien neu zu organisieren. Beim ersten Transfer rsync
wurden ca. 3 GB problemlos kopiert. Mit dem entsprechenden rsync
Befehl schlägt der zweite Transfer jedoch fehl.
$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]
Beim ersten Versuch wurden etwa 550 von 800 GB kopiert, bevor der Fehler aufhörte. Neuere Versuche schaffen es nur, 1 GB zu kopieren, bevor der Fehler aufhört. Ich bin mir nicht sicher, ob das relevant ist, aber die Quelle ist einzurück in der Zeitinkrementelles Backup-Laufwerk, daher enthält es eine Menge Hardlinks. Wie kann ich diesen Fehler beheben und den Befehl abschließen?
Ich verwende Rsync, Version 3.1.1, Protokollversion 31.
Antwort1
dmesg | grep rsync
[85852.560086] Nicht genügend Arbeitsspeicher: Prozess 4242 (rsync) beenden, Punktzahl 194 oder Kind opfern [85852.562695] Prozess 4243 (rsync) beendet, Gesamt-VM: 121948 kB, anonymer RSS: 65752 kB, Datei-RSS: 4 kB – Sparhawk
Lösungen:
- ändern Sie Ihre Rsync-Geschwindigkeit so, dass sie unter der Ihrer Festplatten liegt.
--bwlimit=6000
… USB 2 liegt bei 60 MB/s /4 für RW über 2 Laufwerke oder /10 für die Suche auf Nicht-SSDs … oder holen Sie sich einen XU4 mit 2 GB RAM und USB3. - Ändern Sie die Kernelspeicherparameter
echo 100 > /proc/sys/vm/watermark_scale_factor
- Erzwingen einer Speicherbereinigung während des Betriebs
echo 3 > /proc/sys/vm/drop_caches
- Stellen Sie sicher, dass Sie Kernel 4.9.29 verwenden
uname -r