web-dev-qa-db-ja.com

Rsync制限転送速度が機能しない

--bwlimitオプションを指定して、Rsyncが使用している帯域幅を制限しようとしていますが、動作しないようです。私が何か間違っているのか分かりません...:

可能な最大アップロード速度= 10メガビット/秒。 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' [email protected]:/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' [email protected]:/share/MD0_DATA/ /share/LocalData
trickle: Could not reach trickled, working independently: No such file or directory
receiving incremental file list
21
Motsel

--bwlimit = KBytes/sは移動平均を適用して結果のスループットを抑制します。そのため、使用可能な帯域幅よりも大幅に大きい転送の場合にのみ気付くでしょう。

man ページから、

データのブロックが送信され、転送が速すぎるとrsyncが判断した場合、次のデータブロックを送信する前に待機します。結果は、指定された制限に等しい平均転送速度になります。)

より洗練されたアルゴリズムでこの概念を取り入れているように見える trickle を見てください。

22
Joao Figueiredo

制限オプション(-l)は、rsyncとほぼ同じ構文を使用するscpで正常に機能するようであり、代替として使用できます。

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

例: http://betabug.ch/blogs/ch-athens/934

0

別の方法として、私はcstreamhttp://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'
0
wires