首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux QoS:空闲时间的大容量数据传输

Linux QoS:空闲时间的大容量数据传输
EN

Server Fault用户
提问于 2012-03-28 22:08:25
回答 3查看 406关注 0票数 6

我将如何做一个QoS设置,其中某个低优先级数据流将达到X Mbps带宽,但只有在此接口上当前(所有流/类)的总带宽不超过X的情况下?同时,其他数据流/类不能仅限于X。

用例是ISP通过计算超过5分钟间隔的带宽平均值并计费最大带宽来计费流量。我希望将最大使用量保持在最低限度(即在接口繁忙时间内终止大容量传输),但在空闲/低流量时间通过数据。

看看经常使用的类调度器CBQ、HTB和HSFC,我看不出实现这一目标的简单方法。

EN

回答 3

Server Fault用户

发布于 2012-06-14 23:50:41

我在hfsc工作。我假设你的例子中的"X“是100 that,但那当然可以是任何东西。

这里的技巧是创建一个树类,如下所示:

代码语言:javascript
运行
复制
+--------------------------------------------------------------+  +---------------------+
|                                                              |  |        1:1          |
|                            root                              |  |---------------------|
|                              +                               |  | Rate: 100mbit       |
|                              |                               |  | Upper Rate: 100mbit |
|                              |                               |  |                     |
|                              |                               |  |                     |
|                              |                               |  |                     |
|                         +----v------+                        |  +---------------------+
|                         |  1:1      |                        |
|                         |           |                        |  +---------------------+
|                         +--+---+----+                        |  |         1:10        |
|                            |   |                             |  |---------------------|
|                            |   |                             |  | Rate: 100mbit       |
|                            |   |                             |  | Upper Rate: 100mbit |
|                            |   |                             |  |                     |
|          +----------+------+   +--------+----------+         |  |                     |
|          |  1:10    |                   |  1:11    |         |  |                     |
|          |          |                   |          |         |  +---------------------+
|          +----------+                   +----------+         |
|                                                              |  +---------------------+
|                                                              |  |         1:11        |
|                                                              |  |---------------------|
|                                                              |  | Rate: 10kbit        |
+--------------------------------------------------------------+  | Upper Rate: 100mbit |
                                                                  |                     |
                                                                  |                     |
                                                                  |                     |
                                                                  +---------------------+

之所以会发生这种情况,是因为设置了1:10类(默认类),以始终获得100 magic的保证带宽,而“慢速”类1:11的保证带宽只有10 10kbit突发到100 magic。

这迫使根类(1:1)始终满足1:10而不是1:11的需求。

要注意的事情:

  • 不要使用iptables分类目标,把流量放在1:11。它在分类方面真的很慢。使用交通控制过滤器代替。或者,如果您有许多应用程序要进入这里,并且端口可以根据过滤器的不同而变化,请使用cgroup。
  • 将hfsc的默认目标设置为1:10。
  • 您可能应该将“慢速”链接设置为至少是您的主机的tcp最大段大小。通过这种方式,您可以尝试将发送应用程序卡在慢队列中,以便阻塞很长一段时间,而不需要内核重新协商窗口大小等等。

我测试了两个相互竞争的应用程序,以尽可能快的速度将数据发送到一个相邻的主机,超过2个服务。其中一个服务位于第1:11级,它们都发送了超过100 sent的5秒流量(所以60 11的数据流)。当运行无类时,正如预期的那样,两者都在10秒内完成(两者共享链接,因此时间被平分)。

使用此QoS设置,优先级服务在5秒内完成,而低优先级服务在10分钟内完成(就好像低优先级在等待高优先级先完成一样),我认为这就是您想要的。

票数 1
EN

Server Fault用户

发布于 2012-04-01 21:31:05

我不确定这是否有效,但你可以试试HTB:

  • 对于低优先级流,将rate设置为零(或几乎为零),将ceil设置为实际最大值X。这将导致低优先级流的保证速度为零,并且有可能从其他流借用最大X MBit/s。
  • 对于其他流,将速率设置为网络接口的速度。

根据HTB文档的说法,这应该是可行的。不过,我自己也没试过。

编辑:这将不会限制低prio流量,而链接有X MBit/s空闲带宽。但这可能是个开始。

票数 0
EN

Server Fault用户

发布于 2012-06-13 18:21:19

这很尴尬,但如果您可以手动更改限制,您可以让一个守护进程平均跨越一个更精细的网格(例如,每隔1分钟,跟踪最后5-10个)。然后,你只需要一个相当简单的控制回路,在那里你调整交通限制,以保持5分钟的平均水平,一个安全的数额低于你的限制。更复杂的流量预测方案是可选的。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/374617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档