현재 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