如何在linux htb中分配多余的带宽?

前端之家收集整理的这篇文章主要介绍了如何在linux htb中分配多余的带宽?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有100kbps带宽
  1. - Root - 100kbps
  2. / \
  3. / \
  4. / \
  5. / \
  6. / \
  7. / \
  8. Assured 30kbps 10kbps

我保证A类30kbps,B类10kbps. 60kbps是保留或超额带宽

HTB manual它说

Any unused bandwidth can be used by any class which needs it (in proportion of its allocated share).

但是,当我运行以下测试时,如上面的ascii艺术所示:

  1. tc qdisc add dev eno1 root handle 1: htb
  2. tc class add dev eno1 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
  3. tc class add dev eno1 parent 1:1 classid 1:10 htb rate 10kbps ceil 100kbps
  4. tc class add dev eno1 parent 1:1 classid 1:20 htb rate 30kbps ceil 100kbps
  5. tc filter add dev eno1 protocol ip parent 1:0 prio 1 u32 match ip dport 8000 0xffff flowid 1:10
  6. tc filter add dev eno1 protocol ip parent 1:0 prio 1 u32 match ip dport 8001 0xffff flowid 1:20

我得到以下结果:A类为56kbps,B类为37kbps

这是〜1.5的比率,而我预计该比率为3:1,作为早期分配.

似乎服务了30和10,然后在两个类之间平均分配了多余的部分,这在代码中表示RedBlack树持有这两个类,调度程序对它们执行了RR.

我的问题是,超出的带宽是否与结果相同,code建议? (也许我误解了代码)

或者我应该期望A级和B级之间的比例为3:1?

解决方法

看看HTB文档中的“量子”.所有未分配的bw由WRR算法根据classe的量子处理.

猜你在找的Linux相关文章