Rsync

如何限制安裝 davfs 的雲儲存的頻寬?

  • February 11, 2019

我需要將大約 400 個大約 25 MB 的文件複製到安裝了 davfs 的雲儲存中。我嘗試了以下命令來限制 CPU 負載和 IO 負載:

nice -n 15 ionice -c 3 rsync -avhW --no-compress --progress /src/ /dst/

我的目標文件夾dst是安裝了 davfs 的雲儲存。每當我傳輸單個文件時,rsync 只需要幾秒鐘——至少它顯示得這麼快:

sending incremental file list
xxx
26.70M 100%   15.75MB/s    0:00:01 (xfer#1, to-check=0/1)
sent 26.70M bytes  received 31 bytes  7.63M bytes/sec
total size is 26.70M  speedup is 1.00

我沒有看到任何 rsync 或 nice 程序正在執行,但係統反應非常緩慢,因為數據傳輸仍在後台執行。掛載的雲儲存只有一個 davfs 程序。幾分鐘後,我的系統再次響應,文件傳輸完成。

netstat顯示與雲儲存的活動連接。

如何限制安裝 davfs 的雲儲存的頻寬以防止我的系統變慢?

Rsync(現在)有一個 bwlimit 選項:

  --bwlimit=RATE
         This option allows you to specify the maximum transfer rate for the data  sent  over  the
         socket,  specified  in units per second.  The RATE value can be suffixed with a string to
         indicate a size multiplier, and may be a fractional value (e.g.   "--bwlimit=1.5m").   If
         no suffix is specified, the value will be assumed to be in units of 1024 bytes (as if "K"
         or "KiB" had been appended).  See the --max-size option for  a  description  of  all  the
         available suffixes. A value of zero specifies no limit.

         For  backward-compatibility  reasons,  the  rate limit will be rounded to the nearest KiB
         unit, so no rate smaller than 1024 bytes per second is possible.

         Rsync writes data over the socket in blocks, and this option both limits the size of  the
         blocks  that  rsync  writes, and tries to keep the average transfer rate at the requested
         limit.  Some "burstiness" may be seen where rsync writes out a block  of  data  and  then
         sleeps to bring the average rate into compliance.

         Due  to  the  internal  buffering  of  data, the --progress option may not be an accurate
         reflection on how fast the data is being sent.  This is because some files can show up as
         being  rapidly  sent  when  the data is quickly buffered, while other can show up as very
         slow when the flushing of the output buffer occurs.  This may be fixed in a  future  ver‐
         sion.

引用自:https://unix.stackexchange.com/questions/157323