Networking – Fixing bufferbloat in home network

bufferbloatlatencynetworkingwireless-networking

In our home network, with continuous network IO happening latencies get ridiculous. It's fine with light loads but quickly becomes unusable if I'm, say, rsyncing a large number of small files, –other transfers essentially stop. Pings get through just barely.

Simple topology — a broadband modem / WIFI router in a single box, with some wireless and some wired clients.

I've tried setting ifconfig wlan0/eth0 txqueuelen 1 on all clients, this seems to help a bit but not by much.

Tips welcome: how should I go about diagnosing and eliminating latency problems? Are there more configuration settings I can set on clients, or maybe a better WIFI routers could help?

Best Answer

What you need is Quality of Service and a tweakable Queuing Algorithm. I'd recommend a setup something like this if you are happy to play with the internals of Linux / FreeBSD and have some spare cash:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

Where the Firewall is a Linux or FreeBSD or similar machine with 2 network cards which can impose some advanced queuing and Quality of Service rules on the traffic.

I had to do something similar to stop DNS lookups timing out when doing heavy data transfers over a slower internet connection.

The other option is to get a better router - one that you can install dd-wrt or open-wrt on as I believe these two firmwares provide more in the way of QoS etc than bog-standard home routers.

Related Question