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 !
Odpowiedzi:
Myślę, że doświadczyłeś „pękania”, jak wspomniano na stronie:
Tak jak zapytałem wcześniej, ogólny stosunek na koniec twojej pracy był w końcu ograniczony do 10 milionów.
źródło
Jak wspomniano na stronie podręcznika rsync , przesyłany jest on w KByte / sec:
źródło
--bwlimit=100
, otrzymuję 275 kB / s, bardzo regularny między 265-285 kB / s, brak pękania. Co tu jest nie tak?100 Mbit / s to (około) 10 MB / s, co w rzeczywistości wynosi 10 000 KB / s. Jeśli
rsync
uderzasz w pęknięcie, być może oddzielne narzędzietrickle
pomoże:źródło
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
rsync
sesja zostanie ponownie uruchomiona z włączonymi częściowymi transferami (np--append-verify
.).źródło