Hi, there is something I''m not able to understand about HTB statistics. Why the qdisc show show how many packets are overlimits but in the classes there are always 0 packets overlimits or dropped? I try to expain with a simple example. I create a qdisc htb with only a class and then i do a lot of traffic. pc-innocenti:~# tc qdisc add dev eth0 parent root handle 1: htb default 10 pc-innocenti:~# tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1kbit cei l 1kbit quantum 2000 The qdisc show that there are packets overlimits: pc-innocenti:~# tc -s -d qdisc show qdisc htb 1: dev eth0 r2q 10 default 10 direct_packets_stat 1145 ver 3.17 Sent 339419 bytes 1533 pkts (dropped 0, overlimits 402) backlog 370p The class instead always show 0 packet overlimits or dropped. pc-innocenti:~# tc -s -d class show dev eth0 class htb 1:10 root prio 0 quantum 2000 rate 1000bit ceil 1000bit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0 Sent 66307 bytes 480 pkts (dropped 0, overlimits 0) rate 912bit backlog 448p lended: 32 borrowed: 0 giants: 0 tokens: -13238252 ctokens: -13238252 -- ********************************************************************** Marco Innocenti Gruppo Infrastruttura e Sicurezza CINECA phone:+39 0516171553 / fax:+39 0516132198 Via Magnanelli 6/3 e-mail: innocenti@cineca.it 40033 Casalecchio di Reno Bologna (Italia) ********************************************************************** -- ********************************************************************** Marco Innocenti Gruppo Infrastruttura e Sicurezza CINECA phone:+39 0516171553 / fax:+39 0516132198 Via Magnanelli 6/3 e-mail: innocenti@cineca.it 40033 Casalecchio di Reno Bologna (Italia) **********************************************************************
m.innocenti@cineca.it wrote:> Hi, > there is something I''m not able to understand about HTB statistics. > Why the qdisc show show how many packets are overlimits but in the > classes there are always 0 packets overlimits or dropped?Overlimits is more a kernel thing then usefull as a traffic control figure and tc qdisc -s .. shows the root 1: htb but tc -s class doesn''t. You can see drops with tc -s class - but the default htb queue is too long in this test. Add a specific queue to the class 1:10 so you can specify length. eg. tc qdisc add dev eth0 parent 1:10 handle 10: bfifo limit 64k> > I try to expain with a simple example. I create a qdisc htb with only a > class and then i do a lot of traffic. > pc-innocenti:~# tc qdisc add dev eth0 parent root handle 1: htb default 10 > pc-innocenti:~# tc class add dev eth0 parent 1:1 classid 1:10 htb rate > 1kbit cei l 1kbit quantum 2000 > > The qdisc show that there are packets overlimits: > pc-innocenti:~# tc -s -d qdisc show > qdisc htb 1: dev eth0 r2q 10 default 10 direct_packets_stat 1145 ver 3.17 > Sent 339419 bytes 1533 pkts (dropped 0, overlimits 402) > backlog 370p > > The class instead always show 0 packet overlimits or dropped. > pc-innocenti:~# tc -s -d class show dev eth0 > class htb 1:10 root prio 0 quantum 2000 rate 1000bit ceil 1000bit burst > 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0 > Sent 66307 bytes 480 pkts (dropped 0, overlimits 0) > rate 912bit backlog 448p > lended: 32 borrowed: 0 giants: 0 > tokens: -13238252 ctokens: -13238252 > >
Andy Furniss wrote:>> there is something I''m not able to understand about HTB statistics. >> Why the qdisc show show how many packets are overlimits but in the >> classes there are always 0 packets overlimits or dropped? > Overlimits is more a kernel thing then usefull as a traffic control > figure and tc qdisc -s .. shows the root 1: htb but tc -s class doesn''t. > You can see drops with tc -s class - but the default htb queue is too > long in this test. Add a specific queue to the class 1:10 so you can > specify length. eg. > tc qdisc add dev eth0 parent 1:10 handle 10: bfifo limit 64kThank you for your reply. So there is not a way to know that a specific class is actually shaping the traffic without attaching a qdisc to each class? -- ********************************************************************** Marco Innocenti Gruppo Infrastruttura e Sicurezza CINECA phone:+39 0516171553 / fax:+39 0516132198 Via Magnanelli 6/3 e-mail: innocenti@cineca.it 40033 Casalecchio di Reno Bologna (Italia) **********************************************************************
<snip> Thank you for your reply. So there is not a way to know that a specific class is actually shaping the traffic without attaching a qdisc to each class? </snip> In the current implementation, tc does not report on default qdiscs. Therefore, if would like the ability to follow the amount of traffic flowing through a particular queue I recommend that you attach a PFIFO (the default). -Ron
m.innocenti@cineca.it wrote:> Andy Furniss wrote: > >>> there is something I''m not able to understand about HTB statistics. >>> Why the qdisc show show how many packets are overlimits but in the >>> classes there are always 0 packets overlimits or dropped? >> >> Overlimits is more a kernel thing then usefull as a traffic control >> figure and tc qdisc -s .. shows the root 1: htb but tc -s class doesn''t. >> You can see drops with tc -s class - but the default htb queue is too >> long in this test. Add a specific queue to the class 1:10 so you can >> specify length. eg. >> tc qdisc add dev eth0 parent 1:10 handle 10: bfifo limit 64k > > > Thank you for your reply. So there is not a way to know that a specific > class is actually shaping the traffic without attaching a qdisc to each > class? > >Well the fact you are backlogged shows queue length - just default length htb uses in this test is so long it doesn''t drop. If you had more classes they would be shorter and drop. Adding a queue just lets you choose length - you won''t really see any better stats though you see more with tc -s qdisc. You can also use tc -s class and look at the borrowed/lended counts and see what you can deduce from those. Andy.