Remote

在不佔用頻寬的情況下傳輸大文件(Linux 是否有等效的 BITS?)

  • November 12, 2011

Microsoft 的後台智能傳輸服務 (BITS) 的實現是否可用於 Linux 系統?

我正在考慮通過網際網路將大文件傳輸到遠端 Linux 伺服器的選項,我不希望它佔用我所有的(有限的!)上游頻寬。

過去我曾在 Windows 系統上成功使用過 BITS,但這次我需要在 Linux 伺服器之間進行傳輸。

如果這有什麼不同的話,兩個系統都可能執行基於 Ubuntu 的系統,儘管理想情況下我想要一個獨立於發行版的解決方案。

首先,簡單的方法:rsync有一個--bwlimit參數。這是一個恆定的速率,但您可以使用它輕鬆地降低它。

現在,如果你想要自適應速率,有linux 流量控制框架,它實際上是相當複雜的。我知道有幾個參考資料:

就個人而言,當我必須進行設置時,我使用tcng來簡化任務。這是一個例子:

dev office {
   egress {
       class ( <$ssh> ) 
           if ip_tos_delay == 1 && tcp_sport == PORT_SSH ;
       class ( <$kyon> )
           if ip_dst == 172.16.1.62; // monitoring host
       class ( <$fast> )
           if ip_tos_delay == 1;
       class ( <$default> )
           if 1;

       htb() {
           class ( rate 1440kbps, ceil 1440kbps ) {
               $ssh = class ( rate 720kbps, ceil 1440kbps ) { sfq; };
               $kyon = class ( rate 360kbps, ceil 1440kbps ) { sfq; };
               $fast = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
               $default = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
           }
       }
   }
}

在該範例中,通過辦公室介面發送的流量被分為幾類:ssh、kyon、fast 和 default。連結(T1,在使用時)的上限為 1440kbps(這必須略低於實際連結速率,因此緩衝發生在 Linux 機器上,而不是路由器上)。您可以看到 ssh 分配了 720kbps、kyon 360 等。所有這些都可以突發到全速率(ceil)。當存在爭用時,“rate”作為一個比率,因此 ssh 將被賦予 1/2,kyon 1/4,等等。“sfq”表示如何處理多個 ssh 會話;sfq 是循環的一種形式。

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