view content/Linux/fq_codel.md @ 48:ef688010ddb5

fix the image ALT tag
author Dirk Olmes <dirk@xanthippe.ping.de>
date Tue, 28 Oct 2014 16:42:36 +0100
parents cf946b015474
children 1d9382b0329b
line wrap: on
line source

Title: Fair traffic queueing using fq_codel
Date: 2013-08-08
Lang: en

![Down with latency!](http://www.imagetxt.com/userpics/funnyimage-72529829.png)

I've been planning on playing around with Linux' traffic shaping for quite some time now. My linux router machine is directly connected to the DSL modem - no consumer grade router box in the mix (and hence none of the vulnerabilities and security nightmares that have been discovered in those kind of boxen in the recent past).

My requirements for traffic shaping are quite simple: I share some open source downloads via bittorrent but I don't want the torrent traffic to block regular surfing, Skype voice calls etc.

Yesterday, my friend [Holger](https://twitter.com/asynchronaut) brought the [Codel](http://www.bufferbloat.net/projects/codel/wiki) packet scheduler to my attention. [Wikipedia](http://en.wikipedia.org/wiki/CoDel) has a good explanation of the Codel algorithm. 

Since Codel is "no knobs", "just works" all you have to do is to enable CONFIG_NET_SCH_FQ_CODEL in the kernel config and enable codel using

    tc qdisc add dev ppp0 root fq_codel

What can I say? I just works. I have turned off throttling on the torrent uploads and did not notice any lag in daily surfing. Skype calls sound like they did before with torrents turned off.

I realize that fq_codel is not for everyone (i.e. if you use a consumer grade router box you're SOL) but it definitely helps with my use case.