Gettys: The Internet is Broken, and How to Fix It
Gettys: The Internet is Broken, and How to Fix It
Posted Jun 28, 2012 15:58 UTC (Thu) by mtaht (subscriber, #11087)In reply to: Gettys: The Internet is Broken, and How to Fix It by Tobu
Parent article: Gettys: The Internet is Broken, and How to Fix It
In its simplest form, fq_codel for ethernet, running at line rate,
is one line:
tc qdisc add dev your_device root fq_codel
I'd love to see fq_codel or a successor on by default on ethernet in linux in the 3.7 timeframe. But I suspect it will be the distros that pick it up and run with it sooner than that, using some /etc/network/ifup.d scripting magic.
There are test kernels already for ubuntu and fedora... ( http://www.bufferbloat.net/projects/codel/wiki ), openwrt has it too... who will be next?? :)
Anyway, as for the need for "scripting magic"
wifi is more complex, having 4 queues. You need
one fq_codel per hw queue. There are other multi-queue devices, too.
Wifi (mac80211) has issues that cannot be solved at the qdisc layer at present.
If you are running at line rate and your underlying device driver is overbuffered, and/or doesn't have BQL support, you are not going to see all the benefit of fq_codel. BQL is very important and only in about 10 of Linux's device drivers as I write. (hint: it's about 6-12 lines of code to add it to your device driver)
If you are shaping your traffic to slower than line rate, BQL does not matter, but the relevant tc lines would include htb or hfsc as the root qdiscs. I am trying to implement many of jg's recommendations as for classification, aqm, etc in my copious spare time...
There is also an older debloat script out there that takes care of many of the BQL/network offload issues and work continues to make it all simpler.
So... do play with fq_codel, under load, especially at 100Mbit and below. This was kamal mostafa's reaction. He turned it on and...
"The result is *very* impressive: I see a 30X reduction in ping latency on a fully saturated 10Mbps network, just by switching on the new fq_codel scheduler. For an interactive ssh session over that same saturated 10Mbps network, fq_codel totally eliminates the laggy keyboard response — it feels like there’s no other network traffic at all!"
and he turned around and set up an ubuntu ppa, and wrote a howto, linked here: