web-dev-qa-db-fra.com

Faire en sorte que rsync utilise moins de bande passante?

J'utilise rsync pour sauvegarder et synchroniser les partages réseau et mon ordinateur. J'ai ceci compris.

Le problème est que, lorsque vous utilisez rsync pour transférer des fichiers, il utilise toute la bande passante possible. Je veux limiter sa vitesse, de sorte que je puisse utiliser ma connexion pour autre chose.

Plus précisément, en ce moment, j'écoute Last.FM, mais il continue à couper, car rsync sature la connexion locale.

Cela semble peu probable, mais dans ce cas, mon réseau local est vraiment aussi rapide que mon internet (10 mégabits pour les deux, université yay!). Quoi qu'il en soit, je n'ai pas de bande passante supplémentaire lorsque rsync est en cours d'exécution. Des idées?

Oh, au fait, en particulier, je suis sous Ubuntu 9.04.

45
Mike Cooper

Utilisez l'option --bwlimit=KBPS pour limiter la bande passante d'E/S, Koctets par seconde

Reportez-vous également à la page de manuel .

67
DaveParillo

(Ceci serait idéalement une réponse au commentaire de de joshtronic )

--bwlimit=XX a en fait le problème opposé; le transfert est en effet une moyenne mobile - comme l'explique utilement Rsync Basics :

En raison de la nature des transferts rsync, des blocs de données sont envoyés. Si rsync détermine que le transfert était trop rapide, il attendra avant d'envoyer le prochain bloc de données. Le résultat est un taux de transfert moyen égal à la limite spécifiée.

Il n'est pas clair si la moyenne est prise sur plusieurs fichiers, mais dans tous les cas, il n'est pas vrai que

le premier fichier est envoyé à fond et les fichiers suivants sont restreints pour tenter d'atteindre la valeur de bande passante spécifiée

En fait, le premier fichier sera limité tant qu'il est suffisamment volumineux pour que la moyenne puisse démarrer (ce qui signifie tous les fichiers sauf les plus petits).

Vous avez raison de dire que le ruissellement serait une meilleure solution, mais ce que je comprends de l'article explicatif (" Trickle : Un formateur de bande passante Userland pour les systèmes de type Unix ") est que trickle fonctionne également en retardant les E/S en fonction d'une moyenne de transfert en mouvement. J'espère que le recommander consiste à utiliser une mesure de fréquence supérieure pour appliquer la moyenne. Je n'ai pas été en mesure de trouver de données en ligne qui le confirment (bien que le document ci-dessus mentionne le code de rsync comme "simple", suggérant aux auteurs de trickle de penser que leur code est meilleur).

21
supervacuo