Rsync --bwlimit nie działa


12

Obecnie używam rsync do przesyłania dużych plików z hosta na inny. Chciałbym ograniczyć debet za ten przelew. Po przeczytaniu strony podręcznika znalazłem opcję --bwlimit, która oczekuje wartości KB / s.

Chcę ograniczyć transfer do około 100 Mb / s. Użyłem więc następujących ustawień:

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

Ale to nie wydaje się być przestrzegane zgodnie z danymi wyjściowymi 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

Jeśli się nie mylę: 19,33 MB / s ~ = 154 Mb / s

Więc co jest tutaj nie tak?

PS: rsync wersja 3.0.6 protokół wersja 30

Dzięki za pomoc !


Tutaj działa z rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) i 3.0.9 (Ubuntu) przy użyciu tych samych parametrów. Musisz podać więcej informacji o swoim systemie.
— scai


@mreithub Odpowiedź w tym poście jest rzeczywiście interesująca, ale tak naprawdę Hugo wydaje się przesyłać raczej duże pliki.
— scai

rsync bwlimits dla każdego pliku, aby ograniczyć bw, należy ograniczyć połączenie (w systemie Linux przy użyciu iptables + tc atmail.com/kb/2009/throttling-bandwidth ), więc nie jest to łatwy sposób.
— zb

Witam, korzystam z RHEL 6, ale to nie robi dużej różnicy. Tak, to duży plik, więc obciążenie powinno być prawie stabilne. Aby uzyskać informacje, równoważne polecenie z SCP działa świetnie. Więc nie wiem, co jest nie tak z rsync.
— Hugo,

Odpowiedzi:


10

Myślę, że doświadczyłeś „pękania”, jak wspomniano na stronie:

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

Tak jak zapytałem wcześniej, ogólny stosunek na koniec twojej pracy był w końcu ograniczony do 10 milionów.


4

Jak wspomniano na stronie podręcznika rsync , przesyłany jest on w KByte / sec:

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

2
Właśnie tego użyłem: 10 000 kilobajtów = 78,12500 megabitów
— Hugo,

2
Nie zwracałeś uwagi na to, co powiedziałem. Rsync używa Bajta zamiast bitu , więc musisz obliczyć przepustowość w bitach i ukryć ją w bajtach
— shgnInc

Mam te same problemy, kiedy umieszczam --bwlimit=100, otrzymuję 275 kB / s, bardzo regularny między 265-285 kB / s, brak pękania. Co tu jest nie tak?
— Brethlosze

2

Chcę ograniczyć transfer do około 100 Mb / s Więc użyłem następujących ustawień:

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

100 Mbit / s to (około) 10 MB / s, co w rzeczywistości wynosi 10 000 KB / s. Jeśli rsyncuderzasz w pęknięcie, być może oddzielne narzędzie tricklepomoże:

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

0

Pokazana wartość to efektywna szybkość transferu, która obejmuje przyspieszenie kompresji i algorytm delta, można to łatwo zaobserwować, widząc duże liczby, jeśli przerwana rsyncsesja zostanie ponownie uruchomiona z włączonymi częściowymi transferami (np --append-verify.).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.