Rsync --bwlimit non funziona


12

Attualmente sto usando rsync per trasferire file di grandi dimensioni da un host a un altro. Vorrei limitare l'addebito per questo bonifico. Dopo aver letto la pagina man ho trovato l'opzione --bwlimit che si aspetta un valore KB / s.

Voglio limitare il trasferimento a circa 100 Mbit / s Quindi ho usato le seguenti impostazioni:

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

Ma questo non sembra essere rispettato in base all'output di 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

Se non sbaglio: 19.33MB / s ~ = 154Mbit / s

Quindi cosa c'è che non va qui?

PS: rsync versione 3.0.6 protocollo versione 30

Grazie per l'aiuto !


Qui funziona con rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) e 3.0.9 (Ubuntu) utilizzando gli stessi parametri. Devi fornire ulteriori informazioni sul tuo sistema.
scai,


@mreithub La risposta in questo post è davvero interessante ma in realtà Hugo sembra trasferire file piuttosto grandi.
scai,

rsync bwlimits per ogni file, per limitare bw dovresti limitare la connessione, (su Linux usando iptables + tc atmail.com/kb/2009/throttling-bandwidth ), quindi non è un modo semplice.
zb "

Ciao, sto eseguendo RHEL 6 ma questo non fa molta differenza. Sì, questo è un file di grandi dimensioni, quindi l'addebito dovrebbe essere quasi stabile. Per informazione, il comando equivalente con SCP funziona alla grande. Quindi non so cosa c'è che non va in rsync.
Hugo

Risposte:


10

Penso che tu abbia sperimentato un po 'di "burstiness" come menzionato nella manpage:

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

Quindi, come ho chiesto prima, il rapporto complessivo alla fine del lavoro era finalmente limitato a 10 milioni.


4

Come menzionato nella pagina man di rsync , viene trasferito in KByte / sec:

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

2
Questo è quello che ho usato: 10.000 kilobyte = 78.12500 megabit
Hugo

2
Non hai prestato attenzione a quello che ho detto. Gli rsync usano Byte invece di bit , quindi devi calcolare la larghezza di banda in bit e convertirla in byte
shgnInc

Ho gli stessi problemi, quando lo metto --bwlimit=100, ottengo 275kB / s, molto regolari tra 265-285 kB / s, nessuna burstiness. Cosa c'è di sbagliato qui?
Brethlosze,

2

Voglio limitare il trasferimento a circa 100 Mbit / s Quindi ho usato le seguenti impostazioni:

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

100 Mbit / s è (circa) 10 MByte / s, ovvero 10.000 KByte / s. Se stai colpendo la rsyncburstiness, forse lo strumento separato trickleti aiuterà:

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

0

Il valore mostrato è l'effettiva velocità di trasferimento che include le velocizzazioni dalla compressione e l'algoritmo delta, questo può essere facilmente osservato vedendo numeri grandi se una rsyncsessione interrotta viene riavviata con trasferimenti parziali abilitati (es --append-verify.).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.