Rsync --bwlimit не працює


12

Зараз я використовую rsync для передачі великого файлу з хоста на інший. Я хотів би обмежити дебет для цього переказу. Прочитавши сторінку man, я знайшов варіант --bwlimit, який очікує значення КБ / с.

Я хочу обмежити передачу на близько 100 Мбіт / с. Тому я використав наступні налаштування:

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

Але це, мабуть, не дотримується відповідно до результатів 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

Якщо я не помиляюся: 19,33 МБ / с ~ = 154 Мбіт / с

То що тут не так?

PS: протокол rsync версії 3.0.6, версія 30

Спасибі за вашу допомогу !


Тут він працює з rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) та 3.0.9 (Ubuntu), використовуючи ті самі параметри. Ви повинні надати більше інформації про вашу систему.
scai

Чи допомагає це? stackoverflow.com/questions/10064316 / ...
mreithub

@mreithub Відповідь у цьому дописі справді цікава, але насправді Гюго, здається, передає досить великі файли.
scai

rsync bwlimits для кожного файлу, щоб обмежити bw, ви повинні обмежити з'єднання (для Linux з використанням iptables + tc atmail.com/kb/2009/throttling-bandwidth ), так що це не простий спосіб.
zb

Привіт, у мене працює RHEL 6, але це не має великої різниці. Так, це великий файл, тому дебет повинен бути майже стабільним. Для інформації відмінно працює команда SCP. Тож я не знаю, що не так з rsync.
Гюго

Відповіді:


10

Думаю, ви відчули певну "лопнутість", як згадується на сторінці ":

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

Отже, як я запитав, перш ніж загальне співвідношення в кінці вашої роботи було нарешті обмежене 10М.


4

Як згадувалося на сторінці "rsync man" , вона передається в KByte / sec:

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

2
Ось що я використав: 10 000 кілобайт = 78,12500 мегабіт
Гюго

2
Ви не звернули уваги на те, що я сказав. Rsync використовує Байт замість біт , тому вам доведеться обчислити пропускну здатність у бітах і
приховати

У мене є ті ж самі питання, коли я ставлю --bwlimit=100, я отримую 275 кБ / с, дуже регулярний між 265-285 кБ / с, без розривів. Що тут не так?
Brethlosze

2

Я хочу обмежити передачу на близько 100 Мбіт / с. Тому я використав наступні налаштування:

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

100 Мбіт / с становить (приблизно) 10 Мбіт / с, що дійсно становить 10 000 Кбіт / с. Якщо ви rsyncстикаєтеся з бурхливістю, можливо, окремий інструмент trickleдопоможе:

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

0

Показане значення - ефективна швидкість передачі, яка включає швидкість, що скорочується від стиснення, і алгоритм дельта, це можна легко помітити, побачивши великі числа, якщо перерваний rsyncсеанс перезапущений з включеними частковими передачами (наприклад --append-verify).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.