Rsync --bwlimit不起作用


12

我目前正在使用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

谢谢你的帮助 !


在这里,它使用相同的参数与rsync 3.0.4(Ubuntu),3.0.6(openSUSE)和3.0.9(Ubuntu)配合使用。您必须提供有关系统的更多信息。
scai


@mreithub这篇文章中的答案确实很有趣,但实际上Hugo似乎传输的文件很大。
scai 2013年

对于每个文件rsync bwlimits,要限制bw,您应该限制connection,(在Linux上使用iptables + tc atmail.com/kb/2009/throttling-bandwidth),所以没有简单的方法。
zb'13年

您好,我正在运行RHEL 6,但这并没有太大的区别。是的,这是大文件,因此借记应几乎稳定。作为参考,SCP的等效命令非常有用。所以我不知道rsync有什么问题。
雨果

Answers:


10

我认为您遇到了联机帮助页中提到的“突发事件”:

--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.

因此,正如我之前问过的那样,工作结束时的总比例最终限制为1000万。


4

rsync手册页所述,它以千字节/秒的速度传输:

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

2
那就是我所使用的:10000 KB = 78.12500兆位
Hugo

2
你没注意我说的话。rsync的使用字节而不是,所以你必须计算带宽,它隐蔽到字节
shgnInc

我有同样的问题,当我输入时--bwlimit=100,我得到275kB / s,在265-285 kB / s之间非常规则,没有突发性。这是怎么了
Brethlosze

2

我想将传输限制为大约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/

0

显示的值是有效的传输速率,其中包括压缩和delta算法带来的速度提升,如果在rsync启用了部分传输的情况下重新启动中断的会话(例如--append-verify),则可以看到大量数字,很容易观察到这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.