TCP tuning blues
nick at leippe.com
Mon Oct 30 11:02:40 MST 2006
This weekend I had my wireless ISP service (Digis) upgraded to their newer
canopy equipment, offering a *4Mbps service. Unfortunately I cannot seem to
get any benefit from it.
The installer hooked his XP laptop directly to the bridge and saw 4Mbps on
repeated speed tests (both speedtest.digis.net and speakeasy.net speedtests).
However, directly from either my firewall (redhat, 2.4.18 kernel, eepro100
driver) or my desktop (gentoo, 2.6.17 kernel, tulip driver), I can barely get
above 1Mbp with the same tests. I've gone over the tcp tuning guides, used
iperf, and cannot figure out what I'm missing.
as per the tuning guides, in /proc/sys/net I've played with:
core/rmem_max -> 16777216
core/wmem_max -> 16777216
ipv4/tcp_rmem -> 4096 87380 16777216
ipv4/tcp_wmem -> 4096 87380 16777216
ipv4/tcp_rfc1337 -> 1
ipv4/tcp_sack -> 0
I've never had to really do anything to get TCP to 'just work' before. I get
91Mbps+ on my local 100BT just fine (8% overhead as expected).
*BTW, for anyone looking at Digis, their recent ads are wildly false. They
advertise "speeds up to 7Mbps, but when you actually get the documents to
sign it says "7Mbps (combined)", meaning 4.5down + 2.5 up, or whatever it
actually is. Worse, when I initially talked to their sales and asked about
real-world performance he said, "well, when it's busy it can drop down to
around 6.5, but is nearly always above 6", further implying that the 7 was in
one direction. Regardless, $40/month is still a good price for 4Mbps service
More information about the PLUG