Re: HTB and PRIO qdiscs introducing extra latency when output interface is saturated

Linux Advanced Routing and Traffic Control

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

 



Andy, thanks again for your help. Yes, HZ is still 1000 in 2.6.12. I
tried your suggestions are here are the results.

ASCII diagram

(network A)  -->  (eth1) core router (eth0) --> (network C)
                            (eth2) 
                             ^
                             |
                             |
                         (network B)

Looking at the following graphics

http://140.203.56.30/~jlynch/htb/core_router.png
http://140.203.56.30/~jlynch/htb/voip_stream_23691.png

voip_stream_23691.png is a graph of the delay of the voice stream
travelling from network A to network C in test 2. Notice from the core
router graph that there is only voip traffic passing through the core
router until time 07:55 and the delay in voip stream is 0.25 ms until
then. After this time tcp traffic is introduced saturating the outgoing
interface of the core router (eth0). The delay increases to a maximum of
2.75 ms , which is a considerable improvement on 30ms when I was using
the ceil value of 100mbit. But there is a lot of jitter. 


With the ceil at 90Mbit, the outgoing bit rate of eth0 has gone from
98mbit to approx 90Mbit as can be seen from the core router graph for
eth0 bytes out. Note that with the tcp traffic is all http downloads, so
most Ethernet frames will be of maximum size, 1518 bytes, so 98mbits is
the maximum throughput possible on a 100mbit card, taking into account
the overheads of ethernet such as the interframe gap, preamble and start
frame delimiter.

Im not sure how to configure some of the htb parameters. The following
is my understanding of them and a few questions I have as well.

How exactly does the HZ value have a bearing on the ceil value ? How can
I calculate a maximum for the ceil value ?

12kb is the minimum burst size for a 100 mbit NIC with a timer
resolution of 1ms (1000hz) and tc calculates the smallest possible burst
when it is not specified, right ?. 

cburst is the number of bytes that can be burst as fast as the interface
can transmit them. It is smaller than burst can is ideally one packet
size, right ?
 
quantum determines the ratio at which the classes share their parents
bandwidth. Each class is given quantum number of bytes before serving
the next class, right ?

Is there any way I can limit the jitter of the VoIP traffic passing
through the htb class ?



Jonathan


On Wed, 2005-07-27 at 22:53 +0100, Andy Furniss wrote:
> Jonathan Lynch wrote:
> > Andy, Many thanks for your reply. Below is some output from the queueing
> > disciplines to show that the filters are working correctly and they are
> > going to the right classes.
> 
> OK classification looks good then.
> 
> 
> > 
> > pass_on means if no class id equal to the result of the filter is found
> > then try next filter, which is the BE class in this case.
> 
> Ahh I'll have to play with this dsmark stuff one day :-)
> 
> > 
> > So back to the main question, could anyone tell me why the delay is so
> > high (30ms) for VoIP packets which are treated with the EF phb when the
> > outgoing interface of core  router to network c is saturated ?
> 
> I would test next with htb setup like (assuming you are HZ=1000 - you 
> will be under rate if not) -
> 
> ...
> 
> tc class add dev $1 parent 2:0 classid 2:1 htb rate 90Mbit ceil 90Mbit 
> quantum 1500 burst 12k cburst 12k
> 
> tc class add dev $1 parent 2:1 classid 2:10 htb rate 1500kbit ceil 
> 90Mbit quantum 1500 burst 12k cburst 12k
> ...
> 
> tc class add dev $1 parent 2:1 classid 2:20 htb rate 5Mbit ceil 90Mbit 
> quantum 1500 burst 12k cburst 12k
> 
> ...
> 
> 
> If that doesn't make things any better then you could try giving the 
> 2:10 class a rate alot higher than it needs and see if that helps.
> 
> 
> Andy.

_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

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