Hi all, I just recently began using HTB to try and manage bandwidth for my network. This is the script I''m using: /sbin/iptables -t mangle -A FORWARD -o eth1 -s ! 192.168.244.2 -j MARK --set-mark 53 tc qdisc add dev eth1 root handle 1: htb default 20 tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit burst 131072k quantum 59000 tc class add dev eth1 parent 1:1 classid 1:10 htb rate 64kbit quantum 1501 tc class add dev eth1 parent 1:1 classid 1:20 htb rate 1kbit ceil 100mbit burst 131072k quantum 1600 tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10 tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10 tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle 53 fw flowid 1:10 The problem is I often find the rate exceeding the ceil which is 64kbit for 1:10 when I ran this command: tc -s show class dev eth1 I''m also using a script that captures the output of the above command and feeds it to rrdtool to plot a graph of the usage and it also shows that the bandwidth being utilised exceeds 64kbit. How can ensure that this doesn''t happen? Where did I go wrong with my config? Any help would be appreciated. Thanks.
You didn''t set a ceil for 1:10, you only set a rate. when no ceil is specified, a subclass will borrow past its rate max if it can. You should use: tc class add dev eth1 parent 1:1 classid 1:10 htb rate 64kbit ceil 64kbit quantum 1501 And then it would use 64kbit as a hard cap, only going past it for short bursts when trying to maintain 64kbit as the average (cburst paramater can control this, but shouldn''t be neccasary). - Jody On 9/30/05, anderson@skyweb.co.ke <anderson@skyweb.co.ke> wrote:> > > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 64kbit quantum 1501 >The problem is I often find the rate exceeding the ceil which is 64kbit for> 1:10 when I ran this > command: > > tc -s show class dev eth1 > > I''m also using a script that captures the output of the above command and > feeds it to rrdtool to plot a graph of the usage and it also shows that > the > bandwidth being utilised exceeds 64kbit. > > How can ensure that this doesn''t happen? Where did I go wrong with my > config? > > Any help would be appreciated. > > > Thanks. > _______________________________________________ > LARTC mailing list > LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc >_______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
I thought that the default ceil was the same as the rate, or does that only apply to the root class? Thanks for the info. On Fri Sep 30, 2005 at 06:29:52PM -0400, Jody Shumaker wrote:> You didn''t set a ceil for 1:10, you only set a rate. when no ceil is > specified, a subclass will borrow past its rate max if it can. > > You should use: > > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 64kbit ceil 64kbit > quantum 1501 > > And then it would use 64kbit as a hard cap, only going past it for short > bursts when trying to maintain 64kbit as the average (cburst paramater can > control this, but shouldn''t be neccasary). > > - Jody > > On 9/30/05, anderson@skyweb.co.ke <anderson@skyweb.co.ke> wrote: > > > > > > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 64kbit quantum 1501 > > > > > The problem is I often find the rate exceeding the ceil which is 64kbit for > > 1:10 when I ran this > > command: > > > > tc -s show class dev eth1 > > > > I''m also using a script that captures the output of the above command and > > feeds it to rrdtool to plot a graph of the usage and it also shows that > > the > > bandwidth being utilised exceeds 64kbit. > > > > How can ensure that this doesn''t happen? Where did I go wrong with my > > config? > > > > Any help would be appreciated. > > > > > > Thanks. > > _______________________________________________ > > LARTC mailing list > > LARTC@mailman.ds9a.nl > > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc > >> _______________________________________________ > LARTC mailing list > LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
anderson@skyweb.co.ke wrote:>I thought that the default ceil was the same as the rate, or does that only >apply to the root class? > >Thanks for the info. > > >I just checked the documentation, and you are correct, "The default ceil is the same as the rate." However since that doesn''t seem to be happening for you, I''d suggest trying to set it. Also, it''d be helpful to include the output of ''tc -s class show dev eth1'' instead of merely citing it. It would list the actual ceil being used and other useful information. - Jody