Rsync --bwlimit no funciona

12

Actualmente estoy usando rsync para transferir archivos grandes de un host a otro. Me gustaría limitar el débito de esta transferencia. Después de leer la página de manual, encontré la opción --bwlimit que espera un valor de KB / s.

Quiero limitar la transferencia a alrededor de 100Mbit / s Así que usé la siguiente configuración:

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

Pero esto no parece ser respetado de acuerdo con la salida 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 no me equivoco: 19.33MB / s ~ = 154Mbit / s

Entonces, ¿qué está mal aquí?

PS: rsync versión 3.0.6 protocolo versión 30

Gracias por tu ayuda !

Hugo
fuente
Aquí funciona con rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) y 3.0.9 (Ubuntu) usando los mismos parámetros. Debe proporcionar más información sobre su sistema.
scai
@mreithub La respuesta en esta publicación es realmente interesante, pero en realidad Hugo parece transferir archivos bastante grandes.
Scai
rsync bwlimits para cada archivo, para limitar bw debe limitar la conexión, (en linux usando iptables + tc atmail.com/kb/2009/throttling-bandwidth ), así que no es una manera fácil.
zb
Hola, estoy ejecutando RHEL 6 pero esto no hace mucha diferencia. Sí, este es un archivo grande, por lo que el débito debería ser casi estable. Para información, el comando equivalente con SCP funciona muy bien. Entonces no sé qué está mal con rsync.
Hugo

Respuestas:

10

Creo que experimentaste un "estallido" como se menciona en la página de manual:

--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.

Entonces, como pregunté antes, la proporción general al final de su trabajo se limitó por fin a 10M.


fuente
4

Como se menciona en la página de manual de rsync , se transfiere en KByte / seg:

--bwlimit=KBPS          limit I/O bandwidth; KBytes per second
shgnInc
fuente
2
Eso es lo que usé: 10 000 kilobytes = 78.12500 megabits
Hugo
2
No prestaste atención a lo que dije. El rsync usa Byte en lugar de bit , por lo que debe calcular el ancho de banda en bit y convertirlo en byte
shgnInc
Tengo los mismos problemas, cuando pongo --bwlimit=100, obtengo 275kB / s, muy regular entre 265-285 kB / s, sin explosiones. ¿Qué hay de malo aquí?
Brethlosze
2

Quiero limitar la transferencia a alrededor de 100Mbit / s Así que utilicé la siguiente configuración:

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

100 Mbit / s es (aproximadamente) 10 MByte / s, que es de hecho 10,000 KByte / s. Si está llegando a la rsyncexplosión, entonces tal vez la herramienta separada tricklelo ayude:

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

El valor que se muestra es la velocidad de transferencia efectiva que incluye la aceleración de la compresión y el algoritmo delta, esto se puede observar fácilmente al ver grandes números si rsyncse reinicia una sesión interrumpida con transferencias parciales habilitadas (ej --append-verify.).

Daniel Sokolowski
fuente