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

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

현재 rsync를 사용하여 한 호스트에서 다른 호스트로 대용량 파일을 전송하고 있습니다. 이 이체의 차변 금액을 제한하고 싶습니다. 매뉴얼 페이지를 읽은 후 --bwlimit 옵션에 KB/s 값이 필요하다는 것을 알았습니다.

전송 속도를 약 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

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

답변1

나는 당신이 매뉴얼 페이지에 언급된 "플레어" 중 일부를 경험하고 있다고 생각합니다.

--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로 제한됩니다.

답변2

에서 언급했듯이rsync 매뉴얼 페이지, KByte/sec 단위로 전송됩니다.

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

답변3

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

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

100Mbit/s는 (대략) 10MByte/s이며 실제로는 10,000KByte/s입니다. rsync예상치 못한 상황이 발생하는 경우 별도의 도구가 trickle도움이 될 수 있습니다.

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

답변4

표시된 값은 압축 및 델타 알고리즘에 의해 제공되는 속도를 포함하는 유효 전송 속도입니다. 이는 부분 전송이 활성화된 상태에서 중단된 세션을 다시 시작하는 경우 큰 숫자를 보면 쉽게 관찰할 수 있습니다 rsync(예: ).--append-verify

관련 정보