Rsync --bwlimit 不起作用

Rsync --bwlimit 不起作用

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

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/

答案4

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

相关内容