Rsync --bwlimit funktioniert nicht

12

Ich verwende derzeit rsync, um große Dateien von einem Host auf einen anderen zu übertragen. Ich möchte die Belastung für diese Überweisung begrenzen. Nachdem ich die Manpage gelesen hatte, fand ich die Option --bwlimit, die einen KB / s-Wert erwartet.

Ich möchte die Übertragung auf etwa 100 Mbit / s beschränken. Daher habe ich die folgenden Einstellungen verwendet:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

Dies scheint jedoch gemäß der Ausgabe von rsync nicht berücksichtigt zu werden:

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

Wenn ich mich nicht irre: 19,33 MB / s ~ = 154 MBit / s

Was ist hier falsch?

PS: rsync Version 3.0.6 Protokoll Version 30

Danke für Ihre Hilfe !

Hugo
quelle
Hier funktioniert es mit rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) und 3.0.9 (Ubuntu) unter Verwendung der gleichen Parameter. Sie müssen weitere Informationen zu Ihrem System bereitstellen.
Scai
@mreithub Die Antwort in diesem Beitrag ist zwar interessant, aber Hugo scheint tatsächlich ziemlich große Dateien zu übertragen.
Scai
rsync bwlimits für jede Datei, um bw zu begrenzen, sollten Sie die Verbindung einschränken (unter Linux mit iptables + tc atmail.com/kb/2009/throttling-bandwidth ), also kein einfacher Weg.
zb
Hallo, ich verwende RHEL 6, aber das macht keinen großen Unterschied. Ja, dies ist eine große Datei, daher sollte die Belastung nahezu stabil sein. Zur Information, der entsprechende Befehl mit SCP funktioniert hervorragend. Ich weiß also nicht, was mit rsync los ist.
Hugo

Antworten:

10

Ich denke, Sie haben einige "Burstiness" erlebt, wie in der Manpage erwähnt:

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

Wie ich zuvor gefragt habe, war das Gesamtverhältnis am Ende Ihres Jobs endlich auf 10 Millionen begrenzt.


quelle
4

Wie in der rsync-Manpage erwähnt , wird es in KByte / Sek. Übertragen:

--bwlimit=KBPS          limit I/O bandwidth; KBytes per second
shgnInc
quelle
2
Das habe ich benutzt: 10 000 Kilobyte = 78.12500 Megabit
Hugo
2
Du hast nicht darauf geachtet, was ich gesagt habe. Die rsync verwenden Byte anstelle von Bit , also müssen Sie die Bandbreite in Bit berechnen und sie in Byte
verdecken
Ich habe die gleichen Probleme, wenn ich --bwlimit=100sage, erhalte ich 275 kB / s, sehr regelmäßig zwischen 265 und 285 kB / s, keine Berstigkeit. Was ist hier falsch?
Brethlosze
2

Ich möchte die Übertragung auf ca. 100 Mbit / s beschränken. Daher habe ich die folgenden Einstellungen verwendet:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

100 Mbit / s sind (ungefähr) 10 MByte / s, was tatsächlich 10.000 KByte / s entspricht. Wenn Sie auf rsyncBurstiness stoßen trickle, hilft möglicherweise das separate Tool :

trickle -s -d 10000 -u 10000 -t 10 -l 100 rsync --progress -v --temp-dir=/tmp srv:/tmp/* /tmp/
Roaima
quelle
0

Der angezeigte Wert ist die effektive Übertragungsrate, die die Beschleunigung durch Komprimierung und den Delta-Algorithmus umfasst. Dies kann leicht beobachtet werden, indem große Zahlen angezeigt werden, wenn eine unterbrochene rsyncSitzung mit aktivierten Teilübertragungen neu gestartet wird (z --append-verify. B. ).

Daniel Sokolowski
quelle