传输大文件而不占用带宽(Linux 有等效的 BITS 吗?)

传输大文件而不占用带宽(Linux 有等效的 BITS 吗?)

Microsoft 后台智能传输服务 (BITS) 的实现是否可用于 Linux 系统?

我正在考虑通过互联网将大文件传输到远程 Linux 服务器的选项,我不希望它耗尽我所有(有限的!)上行带宽。

我过去曾在 Windows 系统上成功使用过 BITS,但这次我需要与 Linux 服务器之间进行传输。

如果有什么区别的话,两个系统都可能运行基于 Ubuntu 的系统,尽管理想情况下我想要一个独立于发行版的解决方案。

答案1

首先,简单的方法: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 是循环赛的一种形式。

相关内容