Rsync限制传输速度不起作用

时间:2012-04-08 16:20:44

标签: rsync

我试图通过指定--bwlimit选项来限制Rsync使用的带宽,但它似乎不起作用。我不知道我做错了什么......:

最大可能上传速度= 10mbit / sec。我想将rsync限制在50%左右:

Rsync命令=

[~] # rsync --version
rsync  version 3.0.7  protocol version 30

[~] # rsync -a --verbose --partial --bwlimit=500 -e 'ssh -p 2200 -i /share/ssh/id_dsa' admin@10.0.3.10:/share/MD0_DATA/ /share/LocalData

结果=

Traffic

=============================================== ===============================

解决方案如下:

[~] # ipkg install trickle
Installing trickle (1.06-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/unstable/trickle_1.06-3_i686.ipk
Installing libevent (2.0.16-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/unstable/libevent_2.0.16-1_i686.ipk
Configuring libevent
Configuring trickle
Successfully terminated. 
[~] # trickle -d 500 rsync -a --verbose --partial -e 'ssh -p 2200 -i /share/ssh/id_dsa' admin@10.0.3.10:/share/MD0_DATA/ /share/LocalData
trickle: Could not reach trickled, working independently: No such file or directory
receiving incremental file list

3 个答案:

答案 0 :(得分:20)

- bwlimit = KBytes / s应用移动平均线来限制产生的吞吐量, 所以你只会注意到它的传输量远大于你的可用带宽。

来自man页,

  

发送数据块,如果rsync确定传输速度太快,它将在发送下一个数据块之前等待。结果是平均传输速率等于指定的限制。)

看看trickle,它似乎采用了更精确的算法来理解这个概念。

答案 1 :(得分:0)

作为替代方案,我非常喜欢cstream http://www.cons.org/cracauer/cstream.html

  

cstream是一个通用的流处理工具,如UNIX dd,通常用于命令行构造的管道

有可能将它与rsync一起使用,没有经验。以下是如何将其与tar一起使用的示例。

http://www.commandlinefu.com/commands/view/2543/throttle-bandwidth-with-cstream

<强> TL; DR

tar -cj /backup | cstream -t 777k | ssh host 'tar -xj -C /backup'

答案 2 :(得分:0)

scp中使用limit选项(-l)似乎可以正常工作,它使用与rsync几乎相同的语法,并且可以用作替代方法。

scp -l 200 hugefile.tgz example.org:bigstuff/

示例取自:http://betabug.ch/blogs/ch-athens/934