[LARTC] HTB: quantum vs. burst

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 16, 2003 at 06:56:41PM +0100, Stef Coene wrote:

> On Thursday 16 January 2003 14:34, Pavel Mores wrote:
> > Hello,
> >
> > a quick question: what exactly is the difference between quantum and
> > burst in HTB?
> >
> > Original HTB documentation states the following with respect to
> > quantums:
> >
> > "... when more classes want to borrow bandwidth they are each given some
> > number of bytes before serving other competing class. This number is
> > called quantum."
> >
> > Burst is defined like this:
> >
> > "The burst and cburst parameters control the amount of data that can be
> > sent at the maximum (hardware) speed without trying to serve another
> > class."
> >
> >
> > From the quotes, the purpose of quantums and both burst parameters seem
> > to be somewhat related, one might say overlapping.  Is it that quantums
> > apply in different situations than bursts?  If so, when is each of
> > quantum, burst and cburst applicable?
> Quantum and bursts have nothing common.  Quantum is used to share remaining 
> bandwidth between child classes.  So each class can send "quantum" bytes.  
> Each class is controlled with 2 buckets, one for the rate, one for the ceil.  
> These buckets have also a burst and this is burst for rate and cburst for 
> ceil.
> 
> Very simplified situation as example : So even if you have a big quantum of 
> let's say 60.000 bytes and you have a ceil of 6.000 bytes/s, you can only 
> send 6.000 packets / second so it takes 10 seconds to send.  But if you have 
> a burst of 30.000 byts/s and you have a very fast connection, you can send 
> 30.000 bytes very fast, but the remaining packets are send at ceil speed so 
> 6.000 bytes/s.  So it will take 5 seconds to send all the data.
> 
> Some more info abot quantum can be found on www.docum.org on the faq page.

Stef,

thanks for your answer.  I've read your FAQ and other sections of
www.docum.org. I've also been perusing Martin's original HTB
documentation now for a couple of days and doing graphing experiments
aimed at gaining better understanding of HTB's bursting behavior but
some questions remain. ;)

>From what you write, I would still say that burst and quantum do have
something in common, namely that they both somewhat determine how much
data is a class permitted to send where it's its turn to send.  In your
example, it seems to me that setting burst kind of overrides for a
moment the behavior otherwise determined by quantum.  But I agree this
connection between quantum and burst may be seen as too weak or abstract
so I won't push this point any further.

Important notes to take:

- you use bytes *per second* to specify burst - do you mean it, or is
  that a typo?  From docs I understand that burst is specified in bytes.
- more importantly, it follows from my measurements that setting burst
  (not cburst, that's a different story) *won't* let a class go above
  its ceil - if you are interested, go to http://kostra.uh.cz/htb-bursting/ 
  (ignore the Czech text ;) and see the section under header "Experiment 1".
  Check out the complete config script and graphs of all three classes
  below.  1:78 has a bit fat burst set, still it cannot break its ceil.
  (However, it *does* make its parent class to break its ceil.)  Did I
  mess up the config?
- back to your example - I'd even dare to say that the class you
  described wouldn't profit from setting burst at all *unless* there's
  another class competing for the bandwidth.  (If there is a contention,
  the burst setting will matter.)  Can you confirm this?

Thanks again.

	pvl



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux