Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jan 2006 01:48:07 -0500
From:      Stephan Koenig <winterny@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   slowstart_flightsize being ignored in 6-stable?
Message-ID:  <d41351410601292248s29b77466q5ad3472bf47f6a9a@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello,

I've got an inhouse webserver that serves a lot of small files over a
high latency WAN intranet link cross-country, and as all requests are
essentially for a single file 8KB-64KB, tcp slowstart greatly impacts
loading speed.  We were running this project on a FreeBSD 4.10 server
for a long time, and had net.inet.tcp.slowstart_flightsize=3D44, which
seemed to generally burst the entire file out before the first ack
came in, which greatly reduced load time of some intranet pages.  We
have a lot of headroom in our network and no measurable packet loss,
so we didn't find any problems with a slowstart_flightsize that high.

This server was getting somewhat old and needed upgraded hardware to
handle the load it was given (3000+ requests/sec for random files,
dataset of 20+GB, so considerable load on the drives), and at the time
of the hardware upgrade, we decided to put FreeBSD 6.0-STABLE on the
system.  Since then, I've noticed that no matter what I do, the box
sends out 2 packets in the initial slowstart burst, then an ack, then
3, then an ack, then 5, etc. It doesnt matter if I have
slowstart_flightsize set to 1, 2, 4, 44, 1024, etc.  I tried disabling
rfc3390, but that doesnt seem to change anything.  I've tried toggling
rfc1323, rfc3042, sack, delayed_ack, and none seem to have any effect.

This appears to be a big change from FreeBSD 4, and perhaps even a bug
(slowstart_flightsize seems to do absolutely nothing).

Anyone have any ideas on how to fix this, other than going back to FreeBSD =
4?

Below should be all relevant sysctl's

[root@web]# sysctl -a|grep tcp
tcpreass:         20,     1690,      3,    166,   138941
tcptw:            48,    13182,   1270,   4970, 10554116
tcpcb:           460,    65536,   1969,   7703, 31090220
net.inet.tcp.rfc1323: 0
net.inet.tcp.mssdflt: 1460
net.inet.tcp.keepidle: 600000
net.inet.tcp.keepintvl: 75000
net.inet.tcp.sendspace: 65535
net.inet.tcp.recvspace: 32768
net.inet.tcp.keepinit: 75000
net.inet.tcp.delacktime: 100
net.inet.tcp.hostcache.cachelimit: 15360
net.inet.tcp.hostcache.hashsize: 512
net.inet.tcp.hostcache.bucketlimit: 30
net.inet.tcp.hostcache.count: 12598
net.inet.tcp.hostcache.expire: 3600
net.inet.tcp.hostcache.purge: 0
net.inet.tcp.log_in_vain: 0
net.inet.tcp.blackhole: 0
net.inet.tcp.delayed_ack: 1
net.inet.tcp.rfc3042: 1
net.inet.tcp.rfc3390: 0
net.inet.tcp.insecure_rst: 0
net.inet.tcp.reass.maxsegments: 1600
net.inet.tcp.reass.cursegments: 3
net.inet.tcp.reass.maxqlen: 48
net.inet.tcp.reass.overflows: 0
net.inet.tcp.path_mtu_discovery: 1
net.inet.tcp.slowstart_flightsize: 44
net.inet.tcp.local_slowstart_flightsize: 4
net.inet.tcp.newreno: 1
net.inet.tcp.sack.enable: 1
net.inet.tcp.sack.maxholes: 128
net.inet.tcp.sack.globalmaxholes: 65536
net.inet.tcp.sack.globalholes: 12
net.inet.tcp.minmss: 216
net.inet.tcp.minmssoverload: 0
net.inet.tcp.tcbhashsize: 16384
net.inet.tcp.do_tcpdrain: 1
net.inet.tcp.pcbcount: 3237
net.inet.tcp.icmp_may_rst: 1
net.inet.tcp.isn_reseed_interval: 0
net.inet.tcp.inflight.enable: 0
net.inet.tcp.inflight.debug: 0
net.inet.tcp.inflight.min: 6144
net.inet.tcp.inflight.max: 1073725440
net.inet.tcp.inflight.stab: 20
net.inet.tcp.syncookies: 1
net.inet.tcp.syncache.bucketlimit: 30
net.inet.tcp.syncache.cachelimit: 15359
net.inet.tcp.syncache.count: 65
net.inet.tcp.syncache.hashsize: 512
net.inet.tcp.syncache.rexmtlimit: 3
net.inet.tcp.msl: 30000
net.inet.tcp.rexmit_min: 3
net.inet.tcp.rexmit_slop: 200
net.inet.tcp.always_keepalive: 1

Thanks Much.
--Stephan



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