[LARTC] HTB, MPU, and suitable values
Jason Boxman
jasonb@edseek.com
Mon, 17 May 2004 16:34:01 -0400
It seems Andreas Klauer's fairnat has experimental support for using HTB's MPU
and overhead options.
fairnat.config:
# Use MPU for HTB. From the LARTC Howto on MPU:
# "A zero-sized packet does not use zero bandwidth. For ethernet, no packet
# uses less than 64 bytes. The Minimum Packet Unit determines the minimal
# token usage for a packet."
HTB_MPU=0
# HTB_MPU=64 # Ethernet
# HTB_MPU=106 # According to Andy Furniss, this value is suited for DSL users
I imagine that 106 value is a reference to this post:
http://mailman.ds9a.nl/pipermail/lartc/2004q2/012369.html
The patch seems to be available here:
http://luxik.cdi.cz/~devik/qos/htb/v3/htb_tc_overhead.diff
In any case, I applied the patch to `tc` and recompiled.
The resulting binary let me set 'mpu' when using HTB, so I set it to 106 as
suggested above.
As far as I can tell, nothing changed.
Should there be some notable outcome from setting this parameter, as I suspect
there should, or should I be using some other value?
Was there a HTB component to this patch as well? I patched `tc`, but not HTB
in my 2.6.6 kernel. I wasn't able to locate a kernel patch for this, is
there one?
Here's the actual configuration:
tc qdisc add dev eth0 root handle 1: htb default 90
tc class add dev eth0 parent 1: classid 1:1 htb rate 160kbit ceil \
160kbit mpu 106
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 64kbit ceil \
64kbit mpu 106 prio 0
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 96kbit ceil \
160kbit mpu 106 prio 1
tc class add dev eth0 parent 1:1 classid 1:50 htb rate 8kbit ceil \
160kbit mpu 106 prio 1
tc class add dev eth0 parent 1:1 classid 1:90 htb rate 8kbit ceil \
160kbit mpu 106 prio 1
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 20
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 20
tc qdisc add dev eth0 parent 1:50 handle 50: sfq perturb 20
tc qdisc add dev eth0 parent 1:90 handle 90: sfq perturb 20
My connection is a ADSL line. When the link is saturated with a large
quantity of small UDP packets (~ 100 bytes each) I find the modem begins to
queue locally when I use a rate of 190kbit for my parent class. So, I was
forced to switch to 160kbit. That seems symptomatic of HTB not knowing the
true cost of sending a packet across the ADSL link, which is of essential
importance when there are many small packets.
It's my suspicion that the MPU and overhead options for HTB would assist in
resolving this and enable me to resume using 190kbit instead of 160kbit for
the outer most parent class.
Is my suspicion correct?
Thanks.