Re: Good qdisc for routers?

Linux Advanced Routing and Traffic Control

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

 



On 05.11.2013 19:06, Remy Mudingay wrote:

>>Hi Dennis,

>>I  highly recommend trying out codel or fq_codel. I've been using
>>fq_codel for well over a year now. I have just over a thousand users
>>going through the router. I use it mainly because I wanted in-queue
>>packet delays statistics but I didn't switch from pfifo_fast because of
>>any perceived problems.
>>Anyway, You won't need to patch your current Linux install as long as
>>it's version 3.3 or higher.

>>I use the following two lines for each interface.

>>tc qdisc add dev eth0 root handle 1: fq_codel quantum 1514 flows 1024 noecn
>>tc filter add dev eth0 prio 1 protocol all parent 1: handle 1 flow hash
>>keys nfct-src,nfct-dst,nfct-proto,nfct-proto-src,nfct-proto-dst divisor
>>10242 perturb 300 baseclass 1:1

Unless you *really* care about preserving the pre-natted ip/port
information in the hash, the second filter is unneeded. I am not huge
on perturbation, in this case it would mean that all the per flow
codel state is lost ever 300 seconds. fq_codel basically has an
identical hash by default, no perturbation, but it randomizes its
default hash on init time so it's unpredictable that way.

I would certainly like it if there was a tc command to "randomize" a
custom hash like your second line there for fq_codel.

I generally have no problem leaving ecn on presently. It is rarely
used, and even more rarely abused. When used, it helps.

>>You can get more in depth information from here
>>http://www.bufferbloat.net/projects/codel/wiki.

>Codel seems more geared towards low latency. The following statement from the >wiki doesn't make it sound like this is the right choice here:

We are pretty happy with fq_codel in the range 4Mbit to 10Gbit. Why
not go for low latency if you can get 100% utilization?

>"People have tried to run CoDel in very big routers, with hundreds of >simultaneous flows, a situation not simulated in advance. There, it isn't >controlling the queue the way it should: whether this is a problem with the >algorithm, or the implementation, is not yet understood."

Several ideas are out of context here. I will ask kathie to clarify.

1) The Codel ns2 model has some problems at hundreds of simultaneous
full rate flows.
2) fq_codel, which splits up flows into up to 64k queues each managed
by codel, does not.
3) "Use fq_codel, not codel. It's an across the board win." - Van Jacobson

http://www.bufferbloat.net/projects/cerowrt/wiki/Bloat-videos

>It is clear that unmodified, CoDel is not appropriate for AQM of traffic inside a >data center; it does not react in a timely enough fashion. Whether the >modifications of the ideas in CoDel will solve this problem is not yet known. >Again, this is an area which CoDel was not designed to solve or it simulated in >before publication."

And here what kathie meant was that codel was designed for edge
networks to "do no harm" to be on by default everywhere, at RTTs
ranging from a few ms to hundreds. Within-the-data center speeds are
well below that, and the reaction times in *codel* are too slow.

Since the paper, ecn support was added to codel and fq_codel and works
well, and by tweaking two variables (target and interval) down to
values that make
more sense inside the data center, the aqm stuff works increasingly better,
and the "fq" portion of fq_codel helps in all cases at all rates, and
improves codel's effective reaction time as well. Yes there is more
work to be done inside the data center. We've spent more time trying
to improve rates below 4mbit than above 10gig (see nfq_codel)

However:

At this point I'm pretty happy with the new "fq" scheduler for linux
hosts in linux 3.12, and fq_codel on linux based hosts and routers, at
nearly any speed. Try it, exercise it, you'll like it.

Even at gig+ speeds you get back a more than a few ms of latency.

http://www.bufferbloat.net/projects/codel/wiki/Best_practices_for_benchmarking_Codel_and_FQ_Codel

http://www.bufferbloat.net/projects/codel/wiki/RRUL_Rogues_Gallery
-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
--
To unsubscribe from this list: send the line "unsubscribe lartc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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