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

前端之家收集整理的这篇文章主要介绍了如何在linux htb中分配多余的带宽?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有100kbps带宽
- Root - 100kbps
                /       \
               /         \
              /           \
             /             \
            /               \
           /                 \
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艺术所示:

tc qdisc add dev eno1 root handle 1: htb
tc class add dev eno1 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
tc class add dev eno1 parent 1:1 classid 1:10 htb rate 10kbps ceil 100kbps
tc class add dev eno1 parent 1:1 classid 1:20 htb rate 30kbps ceil 100kbps
tc filter add dev eno1 protocol ip parent 1:0 prio 1 u32 match ip dport 8000 0xffff flowid 1:10
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相关文章