From owner-freebsd-stable@FreeBSD.ORG Mon Jan 30 06:48:08 2006 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9551F16A420 for ; Mon, 30 Jan 2006 06:48:08 +0000 (GMT) (envelope-from winterny@gmail.com) Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2415F43D46 for ; Mon, 30 Jan 2006 06:48:08 +0000 (GMT) (envelope-from winterny@gmail.com) Received: by zproxy.gmail.com with SMTP id 8so987792nzo for ; Sun, 29 Jan 2006 22:48:07 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=P+be47KNQo/gZ5LjM5yUSAKQoEKiSkHXc2WwSL/Tsne2IVJOnSFJOuFDTR7n0J7j6oLKRPm2fjJydxnWH52exBoSHpv24R8E5nIbHLf+TWAs4zH2/HQpdtSSgerrmZg+NDPeNnQs/m3U0Z0L9byzfNCEgFSw90+bTD6wDyctjEE= Received: by 10.36.222.12 with SMTP id u12mr4700093nzg; Sun, 29 Jan 2006 22:48:07 -0800 (PST) Received: by 10.37.12.20 with HTTP; Sun, 29 Jan 2006 22:48:07 -0800 (PST) Message-ID: Date: Mon, 30 Jan 2006 01:48:07 -0500 From: Stephan Koenig To: freebsd-stable@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: slowstart_flightsize being ignored in 6-stable? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2006 06:48:08 -0000 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