Rsync –bwlimit가 작동하지 않습니다

현재 rsync를 사용하여 큰 파일을 호스트에서 다른 호스트로 전송하고 있습니다. 이 이체에 대한 직불 결제를 제한하고 싶습니다. 매뉴얼 페이지를 읽은 후 KB-s 값을 기대하는 –bwlimit 옵션을 발견했습니다.

전송을 arround 100Mbit / s로 제한하고 싶기 때문에 다음 설정을 사용했습니다.

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.33MB / s ~ = 154Mbit / s

그래서 여기서 무엇이 잘못 되었습니까?

PS : rsync 버전 3.0.6 프로토콜 버전 30

당신의 도움을 주셔서 감사합니다 !



답변

맨 페이지에서 언급 한 것처럼 “버스트 니스”가 발생했다고 생각합니다.

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

전에 말했듯이 작업 종료시 전체 비율이 마침내 10M으로 제한되었습니다.


답변

rsync man page 에서 언급했듯이 KByte / sec로 전송됩니다.

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

답변

전송을 arround 100Mbit / s로 제한하고 싶습니다. 그래서 다음 설정을 사용했습니다.

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

100 Mbit / s는 (대략) 10 MByte / s이며, 실제로 10,000 KByte / s입니다. rsync파열을 겪고 있다면 별도의 도구 trickle가 도움이 될 것입니다.

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

답변

표시된 값은 압축 및 델타 알고리즘으로 인한 속도 증가를 포함하는 유효 전송 속도이며, rsync부분 전송이 활성화 된 상태에서 중단 된 세션이 다시 시작 되면 (ex --append-verify) 많은 수를 확인하면 쉽게 확인할 수 있습니다 .