Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Mar 2000 09:34:28 +1300
From:      Joe Abley <jabley@patho.gen.nz>
To:        Paul Robinson <wigstah@akitanet.co.uk>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Tuning TCP/IP Performance
Message-ID:  <20000305093427.A21367@patho.gen.nz>
In-Reply-To: <Pine.BSF.4.10.10003042016240.22659-100000@elwood.akitanet.co.uk>; from wigstah@akitanet.co.uk on Sat, Mar 04, 2000 at 08:21:20PM %2B0000
References:  <Pine.BSF.4.10.10003042016240.22659-100000@elwood.akitanet.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 04, 2000 at 08:21:20PM +0000, Paul Robinson wrote:
> I've been trying to get TCP/IP performance as fast as possible by playing
> around with sysctl (playing in the net.inet area) and so on, and was
> wondering if there were any comprehensive resources on this that I've
> missed.

I haven't heard of any algorithms to tune TCP automagically. When I
work with people who have satellite hops in their network, we usually
have to tune the TCP knobs by hand, trying a large number of transactions
and statistically minimising transaction time.

> Whenever I do a sysctl -d -a to get a list of descriptions, I get
> the following on 3.2-RELEASE:
> 
> sysctl: sysctl name -1 1024 2: No such file or directory

I get that too, but I had never noticed because I didn't know about
the "d" flag :) FreeBSD 3.3-RELEASE FreeBSD 3.3-RELEASE #1:
Sat Dec  4 15:21:53 NZDT 1999.

> Any idea as to what's going on here?
> 
> Also, I seem to remember hearing about a method used on SunOS to send the
> first four bytes of the data payload back with the SYN ACK which gives the
> appearance of improved performance on benchmarks. Does anybody know as to
> whether this is possible under any version of FreeBSD? I'll move to 4.0 if
> I have to. :)

This is what I generally do before I try to tune anything further:

# turn on RFC1323 extensions (timestamps, PAWS, window scaling, etc) These
# seem to be on by default in 3.3, YMMV for 3.2.

sysctl -w net.inet.tcp.rfc1323=1

# open up the send and receive windows to 131072 bytes; the default
# 16k is too small for people living oceans away from the majority of
# their content

sysctl -w net.inet.tcp.sendspace=131072
sysctl -w net.inet.tcp.recvspace=131072

# If 4.0 (or later 3.x's) support SACK, turn that on here too. SACK is 
# cool :) This is what I use on OpenBSD:

sysctl -w net.inet.tcp.sack=1

# If you want to try transactional TCP (T/TCP, RFC1644) which is the
# thing you mentioned with the single segment with SIN, ACK, FIN + payload,
# turn this on:

sysctl -w net.inet.tcp.rfc1644=1




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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