Forum: PC Hard- und Software rsync sehr, sehr langsam unter Windows 10


von Walter T. (nicolas)


Lesenswert?

Guten Morgen,

ich nutze für Backups seit langer Zeit das rsyncbackup-Script der C'T. 
rsyncbackup verwendet rsync 3.0.7 für Cygwin. Gesichert wird eine 
interne NTFS-Partition auf mit TrueCrypt verschlüsselte USB-Festplatten. 
Das hat gut funktioniert unter Windows XP, später 7, später 10.

Seit meinem neuen Rechner ist das ganze aber sehr, sehr, sehr langsam. 
Für die ersten 100 GB hat es jetzt 20 Stunden benötigt. Das ist 
inakzeptabel.

Die Festplatte ist mit aktiviertem Schreibcache eingehängt, und eine 
normale Kopie von Dateien auf das verschlüsselte Backup-Laufwerk liefert 
die erwarteten rund 70 MB/s. Die Dateiindizierung für dieses Laufwerk 
ist abgeschaltet.


Rsync schafft ab und an Bursts mit 10 MB/s, aber meistens (sagt der 
Ressourcenmonitor) bleibt die Datenrate unter 1 MB/s. Auf den alten 
Systemen waren durchgehend zwischen 30 und 50 MB/s üblich.

Der rsync-Aufruf lautet:
1
C:\Windows\system32\cmd.exe /c rsync -av --exclude "Cache" --exclude "parent.lock" --exclude "Temp*" --exclude "*(NIB)" --exclude "$RECYCLE.BIN" --exclude ".svn" --exclude "Thumbs.db" --exclude "*Previews.lrdata" --exclude "Desktop.ini" "/cygdrive/D/" "/cygdrive/W/rsyncbackup/~2020-03-31_10~42"

Die Prozessor- und Speicherauslastung ist minimal (durchgehend unter 
5%).

Was macht rsync in dieser Situation so langsam?

: Bearbeitet durch User
von Befürworter selbsterfüllender Prophezeiungen (Gast)


Lesenswert?

Walter T. schrieb:
> Was macht rsync in dieser Situation so langsam?

Windows 10? Vielleicht möchte man nicht, dass Cygwin besseren Durchsatz 
bekommt, weil man sich mehr mit der tollen Powershell herumärgern soll 
;)

Was ich bei die raus lese, du hast dein Windows neu aufgesetzt und dann 
Cygwin drauf geklatscht. Hast du diesmal was anders gemacht, also andere 
Optionen angeklickt bei der Installation? Vielleicht neuere Pakete in 
neueren Cygwin drin, die das verursachen?

Vielleicht reicht es auch, dem Prozess im Taskmanager mehr Priorität zu 
geben.

von Udo K. (Gast)


Lesenswert?

Ich kenne das Problem mit rsync.  Keiner weiss da genaueres, und es
dürfte mit der HW zusammenhängen.

Ich bin auf robocopy umgestiegen.
https://en.wikipedia.org/wiki/Robocopy

Das ist sauschnell, und lässt sich einfach skripten.  Das kannst du
auch mit Cygwin gemeinsam verwenden.

Aufruf:
robocopy TestVerzeichnis BackupVerzeichnis /MIR /L


Alternativ kannst du auch das Windows eigene dump/restore verwenden.
Unter Win10 musst du das aber von Windows XP oder 7 draufkopieren.
Dazu einfach ntbackup.exe, ntmsapi.dll und vssapi.dll in einen
Ordner kopieren, der im PATH drinnen ist.
Das hat eine einfache, funktionale GUI, und macht was es soll.

von Walter T. (nicolas)


Lesenswert?

Udo K. schrieb:
> Ich bin auf robocopy umgestiegen.

Das Problem an Robocopy ist, dass es Hardlinks nicht unterstützt. Da war 
ja gerade der Witz an rsyncbackup, dass durchaus eine Deduplizierung 
stattfindet, jedes Backup-Verzeichnis aber vollständig ist.

Befürworter selbsterfüllender Prophezeiungen schrieb im Beitrag 
#6203116:
> Was ich bei die raus lese, du hast dein Windows neu aufgesetzt und dann
> Cygwin drauf geklatscht.

rsync.exe ist für Windows kompiliert, und die DLLs von Cygwin liegen 
einfach im selben Verzeichnis. Es wurde nichts installiert. Nur das 
Verzeichnis vom einen auf den anderen Rechner kopiert.

Befürworter selbsterfüllender Prophezeiungen schrieb im Beitrag 
#6203116:
> Hast du diesmal was anders gemacht, also andere
> Optionen angeklickt bei der Installation?

Das ist mein erstes Windows 10, das nicht aus einem Update von Windows 7 
herrührt. Also: Ja, die Installation ist an etlichen Stellen 
unterschiedlich.

Udo K. schrieb:
> Alternativ kannst du auch das Windows eigene dump/restore verwenden.

Das ist Plan C. Plan B ist Duplicati. Aber erst einmal will ich sehen, 
ob nicht rsync doch noch wieder zur Zusammenarbeit zu bewegen ist.

: Bearbeitet durch User
von bingo (Gast)


Lesenswert?

Schau Dir mal drivesnapshot an, das macht eine konsistente ! 
differentielle Sicherung der Partition oder ganzen HD auf Sektorbasis, 
damit sichere ich seit Jahren meine Daten zuhause und in der Firma.

von Udo K. (Gast)


Lesenswert?

rsync unterstützt bei mir leider keine echten NTFS Hardlinks.
Hardlinks werden in Cygwin eigene Symlinks umgewandelt,
die praktisch von nichts ausser Cygwin lesbar sind.

Habe es eben ausprobiert, weil ich vor kurzem ein ähnliches
Problem hatte.  Auch die Option -H hilft nicht.

Aber gibt es da nicht eine Cygwin Option, dass echte
Hardlinks unterstützt werden, mit irgendeiner Umgebungsvariablen?

Hardlinks werden nur von wenigen Zip Programmen unterstützt
(Winzip glaube ich) und von ntbackup.
Letzteres arbeitet ja auf einer Ebene unter dem Filesystem,
und unterstützt auch die ganzen NTFS Attribute.
Da gibt es viele Feinheiten, wie parallele Streams (ja die
werden von manchen Programmen wirklich verwendet).

von Jim M. (turboj)


Lesenswert?

Keine Ahnung ob das besser performt, aber MSYS2 hat auch ein rsync. Wäre 
hier einen Versuch wert.

von Walter T. (nicolas)


Lesenswert?

Jim M. schrieb:
> Keine Ahnung ob das besser performt, aber MSYS2 hat auch ein rsync. Wäre
> hier einen Versuch wert.

Das wäre es. Was ich auf die Schnelle allerdings nicht finde: Kann ich 
mit MSYS2 auch ein alleinständig ausführbares Executable, das sich 
einfach von Rechner zu Rechner kopieren lässt, zusammenstellen, oder bin 
ich da immer auf eine Installation per Paketmanager angewiesen?

von Johannes S. (Gast)


Lesenswert?

im WSL ist auch rsync drin. Aber eine Bremse ist ja das NTFS, unter WSL 
läuft z.B. auch der gcc um ein vielfaches schneller.

von foobar (Gast)


Lesenswert?

> Kann ich
> mit MSYS2 auch ein alleinständig ausführbares Executable, das sich
> einfach von Rechner zu Rechner kopieren lässt, zusammenstellen, oder bin
> ich da immer auf eine Installation per Paketmanager angewiesen?

MSYS2 weiß ich nicht, aber das war genau das schöne bei MSYS: es wird 
ein kleines standalone Executable erzeugt, dass auf allen 
Win32-basierenden Windows-Kisten läuft (also ab WinNT/Win95).

Der Unterschied zu Cygwin: es versucht nicht, eine Unix-Kompatibilität 
herzustellen - es gibt nur die C- und die Win32-APIs.  Wenn man sich 
einmal angeschaut hat, was für Verrenkungen Cygwin anstellt, um die 
Unix-API nachzubilden, fasst man das nichtmal mehr mit ner Kneifzange 
an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.