Linux QoS:空闲时的批量数据传输

Linux QoS:空闲时的批量数据传输,第1张

概述如何在某个低优先级数据流达到X Mbps带宽的情况下进行QoS设置,但前提是此接口上的当前总带宽(所有流/类)不超过X?同时,其他数据流/类不得限于X. 用例是ISP通过计算5分钟间隔的平均带宽并计费最大值来计费流量.我希望将最大使用量保持在最低限度(即在接口忙碌时间内解除批量传输),但在空闲/低流量时间内获取数据. 查看经常使用的有类调度程序CBQ,HTB和HSFC,我看不到一种直接的方法来实现 如何在某个低优先级数据流达到X Mbps带宽的情况下进行QoS设置,但前提是此接口上的当前总带宽(所有流/类)不超过X?同时,其他数据流/类不得限于X.

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

查看经常使用的有类调度程序CBQ,HTB和HSFC,我看不到一种直接的方法来实现这一点.

解决方法 我让它在hfsc中工作.我假设你的例子中的“X”是100mbit,但那当然可以是任何东西.

这里的技巧是创建一个像这样的树类:

+--------------------------------------------------------------+  +---------------------+|                                                              |  |        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(默认类)设置为始终获得100mbit的保证带宽,而“慢”类1:11提供的保证带宽仅为10kbit,突发为100mbit.

这迫使根类(1:1)总是在1:11之前满足1:10的需要.

注意事项:

>不要使用iptables CLASSIFY目标将流量放入1:11.它的
做分类真的很慢.请改用流量控制过滤器.或者如果您有许多应用程序可以进入这里
端口可以​​变化为过滤,使用cgroup.
>将hfsc上的默认目标设置为1:10.
>您可能应将“慢”链接设置为至少为主机的tcp最大段大小.通过这种方式,您可以尝试让您的发送应用程序停留在慢速队列中以长时间阻塞,而内核不必重新协商窗口大小等等.

我测试了这个有两个竞争应用程序尽可能快地将数据发送到2个服务的相邻主机.其中一项服务是在班级1:11.他们都传输了超过100mbit的5秒流量(因此流传输了60MB的数据).当运行无类别时,正如预期的那样都在10秒内完成(两者共享链接,因此时间平均分配).

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

总结

以上是内存溢出为你收集整理的Linux QoS:空闲时的批量数据传输全部内容,希望文章能够帮你解决Linux QoS:空闲时的批量数据传输所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1038013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存