From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] HTB and PRIO qdiscs introducing extra latency when output
Date: Thu, 28 Jul 2005 21:49:54 +0000 [thread overview]
Message-ID: <42E95302.2020303@dsl.pipex.com> (raw)
In-Reply-To: <1122460110.8454.11.camel@pgala.it.nuigalway.ie>
Jonathan Lynch wrote:
> 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.
I suppose you could hope for a bit less jitter 12k burst is about 1ms at
100mbit.
There is a tweak you can do for htb which may help - in
net/sched/sch_htb.c there is a #define HYSTERESIS 1 - changing it to 0
and recompiling kernel/the module makes things more accurate.
>
>
> 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 ?
It's more to do with burst/cburst than ceil.
>
> 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 ?.
It seems not, I think hysteresis may be involved again here (but then
one of my tcs is hacked about a bit).
You can see what htb is using as defaults by doing tc -s -d class ls ..
If I do that on similar kernels one with hysteresis 0 and one with 1 I
see quite different values.
I chose 12k as big enough for the 90mbit test 12000*8*1000–mbit at ip
level and it seemed like a nice multiple of 1500mtu :-)
>
> 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 ?
Ideally 1 packet but not achievable with htb at lan speed and hz 1000,
also AIUI the way htb does drr means with mixed packet sizes things
aren't packet perfect even at low rates.
Saying that I use htb at low rates and can apparently get packet perfect
with my traffic mix.
I think hfsc can do it perfectly on both counts.
>
> 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 ?
Yea setting 1500 probably makes no difference for this test.
>
> Is there any way I can limit the jitter of the VoIP traffic passing
> through the htb class ?
Try the hysteresis and/or setting the rate for interactive way higher
than it's traffic rate.
I did a quick test to see how things were for me at 100mbit. Because my
other pcs are slow I needed to use two as receivers for netperf.
I noticed something I didn't expect with red or the settings you use -
one of the pcs is slower and has less memory thus smaller tcp socket
size. Using 4 streams two to each unshaped they get about the same,
though with txqueuelen = 1000 there are no drops (with window scalng off
there is a difference). With red and wscale on, the red really favoured
the fast pc - I tried a 40k bfifo so that I got drops, expecting to see
the same, but it was still far more even than the red.
I couldn't really simulate the voip traffic in theory I should be able
to use ping with -i < 1 sec, but using the latest inetutils you get a
flood ping if you do that. I reported this about 18 months ago and it's
supposedly fixed in the cvs (though I don't know if fixed means it just
says invalid argument rather than actually does what's asked, because I
have failed to build it so far).
So if anyone reading this has a i386 ping that -i 0.5 works on, please
mail me the binary :-)
Andy.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
next prev parent reply other threads:[~2005-07-28 21:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-27 10:28 [LARTC] HTB and PRIO qdiscs introducing extra latency when Jonathan Lynch
2005-07-27 13:25 ` [LARTC] HTB and PRIO qdiscs introducing extra latency when output Andy Furniss
2005-07-27 15:37 ` Jonathan Lynch
2005-07-27 21:53 ` Andy Furniss
2005-07-28 16:37 ` Jonathan Lynch
2005-07-28 21:49 ` Andy Furniss [this message]
2005-08-02 20:59 ` Jonathan Lynch
2005-08-03 14:04 ` Andy Furniss
2005-08-03 19:32 ` Andy Furniss
2005-08-04 18:06 ` Andy Furniss
2005-10-19 10:59 ` Andy Furniss
-- strict thread matches above, loose matches on Subject: below --
2005-08-10 18:37 Jonathan Lynch
2005-08-11 16:36 ` Andy Furniss
2005-08-20 20:51 Jonathan Lynch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42E95302.2020303@dsl.pipex.com \
--to=andy.furniss@dsl.pipex.com \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.