TC HTB r2q

HTB:
quantum of class 10001 is big. Consider r2q change.



根据HTB的官方文档显示,quantum是在可以“借”的情况下,一次可以“借”多少,并且说这个值最好尽量的小,但要大于MTU;而且这个值是不用手动设置,它会根据r2q的值计算出来。


Changing burst will not remove the warning.  r2q is "rate to quantum" is used

to calculate the quantum for each class : quantum = rate / r2q.  Quantum must

be 1500 < quantum < 60000.  Otherwise you will get warnings from the kernel.

Solution : choose r2q so for each class 1500 < quantum < 60000

Or choose the best r2q you can and specify the quantum manually if you add a

class.



> tc qdisc add dev eth0 root handle 1: htb default 10

Default r2q = 10.



> tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit burst 2k

> tc class add dev eth0 parent 1:1 classid 1:10 htb rate 80mbit ceil 100mbit

> burst 2k

>

> tc class add dev eth0 parent 1:1 classid 1:11 htb rate 128kbit burst 2k

> tc class add dev eth0 parent 1:11 classid 1:21 htb rate 16kbit ceil 56kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:22 htb rate 16kbit ceil 40kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:23 htb rate 16kbit ceil 72kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:24 htb rate 16kbit ceil 64kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:25 htb rate 16kbit ceil 40kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:26 htb rate 16kbit ceil 40kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:27 htb rate 16kbit ceil 32kbit

> burst 2k

> tc class add dev eth0 parent 1:11 classid 1:28 htb rate 16kbit ceil 56kbit

> burst 2k

Smallest rate : 16kbit = 2 kilobyt / r2q (=10) = 200.  And this is < 1500.  So

you get warnings.

Biggest rate : 100mbit = 12.5 mbyte / r2q = 1.2 Mbyte > 60.000.  So you get

warnings. 



If you do

tc qdisc add dev eth0 root handle 1: htb default 10 r2q 1

Smallest rate : 16kbit = 2kilobyte / r2k = 2000.  And this is > 1500.  So no

warnings.

Biggest rate : 100mbit = 12.5 mbyte / r2q = 12.5 Mbyte > 60.000.  So you get

warnings.  But you can overrule the quantum :

tc class add dev eth0 parent 1:1 classid 1:11 htb rate 128kbit burst 2k

quantum 60000



Quantum is used when 2 classes are getting more bandwidth then the rate.   So

it's only important for sharing the remaining bandwidth.  In that case, each

class may send quantum bytes.

原文地址:https://www.cnblogs.com/CasonChan/p/5033703.html