Rsync --bwlimit ne fonctionne pas


12

J'utilise actuellement rsync pour transférer de gros fichiers d'un hôte à un autre. Je voudrais limiter le débit de ce virement. Après avoir lu la page de manuel, j'ai trouvé l'option --bwlimit qui attend une valeur en Ko / s.

Je veux limiter le transfert à environ 100 Mbit / s J'ai donc utilisé les paramètres suivants:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

Mais cela ne semble pas être respecté selon la sortie de rsync:

file.sql.gz
   570851702 100%   33.90MB/s    0:00:16 (xfer#5, to-check=34/39)
file.sql.gz
    11195140 100%    7.45MB/s    0:00:01 (xfer#6, to-check=33/39)
file.sql.gz
    51439169 100%   19.41MB/s    0:00:02 (xfer#7, to-check=32/39)
file.sql.gz
       34022 100%    1.55MB/s    0:00:00 (xfer#8, to-check=31/39)
file.sql.gz
     2305698 100%    6.96MB/s    0:00:00 (xfer#9, to-check=30/39)
file.sql.gz
     2152942 100%    2.73MB/s    0:00:00 (xfer#10, to-check=29/39)
file.sql.gz
    86655633 100%   19.33MB/s    0:00:04 (xfer#11, to-check=28/39)
file.sql.gz
  3614476032  40%   34.82MB/s    0:02:28

Si je ne me trompe pas: 19,33 Mo / s ~ = 154 Mbit / s

Alors qu'est-ce qui ne va pas ici?

PS: protocole rsync version 3.0.6 version 30

Merci de votre aide !


Ici, cela fonctionne avec rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) et 3.0.9 (Ubuntu) en utilisant les mêmes paramètres. Vous devez fournir plus d'informations sur votre système.
scai


@mreithub La réponse dans cet article est en effet intéressante mais Hugo semble en fait transférer des fichiers plutôt volumineux.
scai

rsync bwlimits pour chaque fichier, pour limiter bw vous devez limiter la connexion, (sous linux en utilisant iptables + tc atmail.com/kb/2009/throttling-bandwidth ), donc pas de moyen facile.
zb

Bonjour, je lance RHEL 6 mais cela ne fait pas beaucoup de différence. Oui, c'est un fichier volumineux, le débit devrait donc être presque stable. Pour information, la commande équivalente avec SCP fonctionne très bien. Je ne sais donc pas ce qui ne va pas avec rsync.
Hugo

Réponses:


10

Je pense que vous avez connu un certain "éclatement" comme mentionné dans la page de manuel:

--bwlimit=RATE
          ... 
          Some "burstiness" may be seen where rsync writes out a block 
          of data and then sleeps to bring the average rate into compliance.

Donc, comme je l'ai demandé avant, le ratio global à la fin de votre travail était enfin limité à 10 millions.


4

Comme mentionné dans la page de manuel rsync , il est transféré en Ko / sec:

--bwlimit=KBPS          limit I/O bandwidth; KBytes per second

2
C'est ce que j'ai utilisé: 10 000 kilo-octets = 78,12500 mégabits
Hugo

2
Vous n'avez pas prêté attention à ce que j'ai dit. Le rsync utilise Byte au lieu de bit , vous devez donc calculer la bande passante en bit et la convertir en octet
shgnInc

J'ai les mêmes problèmes, quand je mets --bwlimit=100, j'obtiens 275kB / s, très régulier entre 265-285 kB / s, pas de burstiness. Qu'est-ce qui ne va pas ici?
Brethlosze

2

Je veux limiter le transfert à environ 100 Mbit / s J'ai donc utilisé les paramètres suivants:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

100 Mbit / s est (environ) 10 MByte / s, ce qui est en effet 10 000 KByte / s. Si vous rsyncfrappez des éclats, peut-être que l'outil séparé vous trickleaidera:

trickle -s -d 10000 -u 10000 -t 10 -l 100 rsync --progress -v --temp-dir=/tmp srv:/tmp/* /tmp/

0

La valeur indiquée est le taux de transfert effectif qui inclut les accélérations de la compression et l'algorithme delta, cela peut être facilement observé en voyant de grands nombres si une rsyncsession interrompue est redémarrée avec des transferts partiels activés (ex --append-verify).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.