Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Nov 2011 13:16:39 -0800
From:      Erich Weiler <weiler@soe.ucsc.edu>
To:        freebsd-net@freebsd.org
Subject:   Arg.  TCP slow start killing me.
Message-ID:  <4EC033B7.5080609@soe.ucsc.edu>

next in thread | raw e-mail | index | archive | help
So, I have a FreeBSD 8.1 box that I'm using as a firewall (pfSense 2.0 
really, which uses 8.1 as a base), and I'm filtering packets inbound and 
I'm seeing a typical sawtooth pattern where I get high bandwidth, then a 
packet drops somewhere, and the TCP connections back off a *lot*, then 
slowly get faster, then backoff, etc.  These are all higher latency WAN 
connections.

I get an average of 1.5 - 2.0 Gb/s incoming, but I see it spike to like 
3Gb/s every once in a while, then drop again.  I'm trying to maintain 
that 3Gb/s for as long as possible between it dropping.

Given that 8.1 does not have the more advanced TCP congestion algorithms 
like cubic and H-TPC that might help that to some degree, I'm trying to 
"fake it".  ;)

My box has 24GB RAM on it.  Is there some tunable I can set that would 
effectively buffer incoming packets, even though the buffers would 
eventually fill up, just to "delay" the TCP dropped packet signal 
telling the hosts on the internet to back off?  Like, could I 
effectively buffer 10GB of packets in the queue before it sent the 
backoff signal?  Would setting kern.ipc.nmbclusters or something similar 
help?

Right now I have:

loader.conf.local:

vm.kmem_size_max=12G
vm.kmem_size=10G

sysctl.conf:

kern.ipc.maxsockbuf=16777216
kern.ipc.nmbclusters=262144
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvspace=8192
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendspace=16384

I guess the goal is to keep the bandwidth high without dropoffs for as 
long as possible, with out as many TCP resets on the streams.

Any help much appreciated!  I'm probably missing a key point, but that's 
why I'm posting to the list.  ;)

cheers,
erich




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EC033B7.5080609>