这是我第一次用tc做实验。我试图达到的目标是限制通过作为网关的虚拟机的下载速度。VM有两个以太网接口。来自用户的流量进入eth0,并通过eth1退出以到达因特网。这两个接口是桥接的。该设置工作良好,无需使用tc施加任何限制,我可以实现~10-11 10/S下载/上传。
为了限制下载流量,我在eth0上应用了tbf qdisc。例如,当我想限制下载速率时,我使用以下方法:
tc qdisc add dev eth0 handle 10: root tbf rate $R burst 15k latency 25ms这是相当好的工作限制速率高达2MB/s,然而,当设置一个更高的速率限制,我开始看到波动。我试验了不同的延迟值和突发值,我注意到如果对于较大的速率,我会将突发增加到40K,在某些情况下增加到50ms,我得到的波动会更小,但情况并不总是这样。
总的来说,我注意到以下几点:
watch tc -p -s -d qdisc show dev eth0我注意到积压增加,当下降发生时,积压就减少了。在1MB/s的情况下,待办事项增加到30-40便士,然后当它下降时,下载速率就会出现瞬间波动。我测试设置是否工作的方式是使用流量遍历此网关VM的机器,并执行以下操作:
我试着阅读了很多关于tc和tbf的资料,我也尝试使用htb和cbq,但在我的例子中,这些qdiscs提供了更多不稳定的下载速率。到目前为止,在我的测试中,只有tbf是最稳定的,但是问题开始以高速率出现。
因此,我想问:
我知道这是很多信息,为了更好地解释我的情况,我已经尽力尽可能的详细了。对于如何使用tbf实现稳定的下载速率,我将不胜感激。提前谢谢你。
发布于 2016-02-16 13:19:31
tc没有“一般”期望,它取决于您使用的qdisc。关于TBF,您可以在“内核中心的旅程”中阅读tbf的一些限制(所有流量都通过一个队列)。
在lartc上,您可以看到您必须根据您的带宽增加tbf桶大小。
积压基本上是队列的长度,您可以读取更多的信息,例如这里。
您的带宽下降时,待办事项正在清空(这是不应该发生的)记住这故事,在那里垃圾收集在一个TCP队列中是消除延迟。你可以试着理解发生在你身上的事情。
90%的点数可能来自您指定的开销,以及您的协议比率:如果您在1MB/s的位置上创建上传文件,并且每发送一个数据包都要接收10个数据包,那么您的下载速度是10 1MB/S。
不过,我对tbf不太了解,我无法帮助您进行配置。祝你好运!
https://serverfault.com/questions/757496
复制相似问题