현재 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
) 많은 수를 확인하면 쉽게 확인할 수 있습니다 .