4 votes

cygwin rsync lent lors de la sauvegarde de 2 disques durs externes

J'ai écrit un shell script pour sauvegarder mes disques durs externes via mon ordinateur portable. J'ai essentiellement connecté mes disques durs externes aux ports USB de l'ordinateur portable et exécuté la commande suivante dans le script pour sauvegarder 1 disque dur vers un autre disque dur.

 rsync -arvv "$flg" --log-file="$LOGFILE" "$srcdir" $BAKUP_DIR 2> "$ERRFILE"
 $ rsync --version
   rsync  version 3.0.9  protocol version 30

Le flg est soit --delete soit spaces selon la façon dont je veux sauvegarder le répertoire. Je crois que c'est lent pour une raison qui m'échappe. Je pense qu'il transfère des fichiers inutilement lors des sauvegardes. Je peux voir des parties de fichiers envoyées (et qui s'agrandissent) lorsque je les regarde dans l'Explorateur et je me demande pourquoi il en est ainsi.

et le fichier journal...

  grep -C 15 delta 2011-12-23-37_bk.log
  2011/12/23 14:28:34 [8712] total: matches=0  hash_hits=0  false_alarms=0 data=2133674141
  2011/12/23 14:28:35 [8712] sent 2133939896 bytes  received 772 bytes  1854794.15 bytes/sec
  2011/12/23 14:28:35 [8712] total size is 3901493999  speedup is 1.83
  2011/12/23 14:28:35 [5072] building file list
  2011/12/23 14:28:39 [5072] delta-transmission disabled for local transfer or --whole-file

Est-ce normal ou y a-t-il quelque chose qui m'échappe ?

3voto

Super Coco Points 131

Je rencontrais exactement le même problème sur un système où j'avais récemment installé Cygwin : rsync était trop lent. En utilisant l'option --progress, j'ai pu voir que rsync transférait des fichiers à seulement 2/3 Mo/sec entre un disque externe USB 3.0 et le disque interne.

Sur un système similaire, la même opération fonctionnait comme prévu (60/70 MBytes/sec).

Après avoir essayé plusieurs choses, j'ai réalisé que "rsync --version" était 3.0.9 sur le système où je venais d'installer Cygwin et 3.0.8 sur le système où il fonctionnait bien. Il semblait donc que la 3.0.9 avait cassé quelque chose.

J'ai copié le fichier rsync.exe (v3.0.8) d'un système sur le rsync.exe (v3.0.9) de l'autre système et maintenant les fichiers sont transférés à la vitesse attendue (60/70 MBytes/sec).

2voto

Patrick Wenz Points 21

J'ai eu exactement le même problème et je l'ai également résolu en installant rsync version 3.0.8. Mais au lieu de copier le fichier .exe, vous pouvez simplement réexécuter l'installation de cygwin. Dans le gestionnaire de paquets, recherchez "rsync". L'installation contient toujours une option pour installer la version 3.0.8, ce qui signifie que vous pouvez facilement passer de la version 3.0.9 à la version 3.0.8. À partir de là, tout est revenu à la normale et à la vitesse maximale.

1voto

Jason Ahrens Points 23

J'avais moi aussi ce problème avec rsync 3.0.9 sur Cygwin64 (~3MB/s de transfert).

Revenir à la version 3.0.8 n'est pas possible sur Cygwin64 car elle n'est pas dans le dépôt.

Cependant, j'ai téléchargé rsync 3.1.0 et l'ai construit manuellement moi-même (il suffit d'avoir installé gcc et make) et cela s'est beaucoup amélioré.

3.1.0 construit par moi-même gère ~35MB/s. La copie de l'explorateur Windows était plus rapide (environ 50MB/s) mais je le prends !

0voto

David Shepperd Points 1

J'ai le même problème avec un taux de transfert rsync de ~4MB/s. Cette vitesse est signalée à la fois par le Resource Monitor et avec un -P à rsync. Il avait été chargé de copier des fichiers de sauvegarde de ~200 Go d'un lecteur à l'autre et pendant plusieurs années, il fonctionnait en prenant environ 1,5 heure pour les copier. Ce n'est pas très rapide, mais c'est suffisant pour moi. Quelque chose a dû se casser récemment et sans doute à cause d'une mise à jour du système Windows puisque je n'avais pas mis à jour Cygwin depuis plusieurs années. Le travail a commencé à prendre ~14 heures et c'est ce qui m'a fait regarder de plus près. J'ai mis à jour le Cygwin x32 que j'utilisais jusqu'à la dernière version (rsync version 3.1.0 protocole version 31) et j'ai installé la version x64 de Cygwin pour voir si cela faisait une différence. Non.

Pensant que l'un ou l'autre des disques durs pouvait être défectueux, je me suis assuré que les deux étaient complètement défragmentés et nettoyés de tout déchet. Puis j'ai remplacé la commande "rsync -a" que j'utilisais par "cp -au" et j'ai mesuré le débit. Avec cp, il lit et écrit à ~100MB/s, ce qui est ce que le matériel supporte, et il copie ces ~200GB en 30 minutes environ. Donc quelque chose dans rsync n'est pas tout à fait correct.

Ma solution est d'abandonner l'utilisation de rsync au profit de cp. Il est beaucoup plus rapide de pré-supprimer toute l'arborescence de répertoires sur la cible et de demander à cp d'en copier une nouvelle que de laisser rsync faire son travail pour garder les deux répertoires synchronisés. Il y a probablement une meilleure option, mais cela fonctionne pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X