From owner-freebsd-net@FreeBSD.ORG Tue Nov 13 12:43:44 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B44672CA for ; Tue, 13 Nov 2012 12:43:44 +0000 (UTC) (envelope-from oppermann@networx.ch) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 106488FC18 for ; Tue, 13 Nov 2012 12:43:43 +0000 (UTC) Received: (qmail 25012 invoked from network); 13 Nov 2012 14:17:55 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 13 Nov 2012 14:17:55 -0000 Message-ID: <50A2407A.5080909@networx.ch> Date: Tue, 13 Nov 2012 13:43:38 +0100 From: Andre Oppermann User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 MIME-Version: 1.0 To: Alfred Perlstein Subject: Re: auto tuning tcp References: <50A0A0EF.3020109@mu.org> <50A0A502.1030306@networx.ch> <50A0B8DA.9090409@mu.org> <50A0C0F4.8010706@networx.ch> <50A13961.1030909@networx.ch> <50A14460.9020504@mu.org> <50A1E2E7.3090705@mu.org> <50A1E47C.1030208@mu.org> <50A1EC92.9000507@mu.org> <50A1FF80.3040900@networx.ch> <50A20251.7010302@mu.org> <50A203F0.3020803@networx.ch> <50A207CC.3060104@mu.org> In-Reply-To: <50A207CC.3060104@mu.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "freebsd-net@freebsd.org" , tuexen@FreeBSD.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Nov 2012 12:43:44 -0000 On 13.11.2012 09:41, Alfred Perlstein wrote: > On 11/13/12 12:25 AM, Andre Oppermann wrote: >> On 13.11.2012 09:18, Alfred Perlstein wrote: >>> On 11/13/12 12:06 AM, Andre Oppermann wrote: >>>> On 13.11.2012 07:45, Alfred Perlstein wrote: >>>>> If you are concerned about the space/time tradeoff I'm pretty happy with making it 1/2, 1/4th, >>>>> 1/8th >>>>> the size of maxsockets. (smaller?) >>>>> >>>>> Would that work better? >>>> >>>> I'd go for 1/8 or even 1/16 with a lower bound of 512. More than >>>> that is excessive. >>> >>> I'm OK with 1/8. All I'm really going for is trying to make it somewhat better than 512 when >>> un-tuned. >> > >>>> PS: Please note that my patch for mbuf and maxfiles tuning is not yet >>>> in HEAD, it's still sitting in my tcp_workqueue branch. I still have >>>> to search for derived values that may get totally out of whack with >>>> the new scaling scheme. >>>> >>> This is cool! Thank you for the feedback. >>> >>> Would you like me to put this on a user branch somewhere for you to merge into your perf branch? >> >> I can put it into my branch and also merge it to HEAD with >> a "Submitted by: alfred" line. >> > Thank you, that works. Note: it's not even compile tested at this point. > > I should be able to do so tomorrow. > > Are there other hashes to look at? I noticed a few more: > > UDBHASHSIZE Even busy UDP servers have only a small number of sockets open. > netinet/tcp_hostcache.c:#define TCP_HOSTCACHE_HASHSIZE 512 This is per host, not per connection or socket. So it should by fine and scales independently. > netinet/sctp_constants.h:#define SCTP_TCBHASHSIZE 1024 > netinet/sctp_constants.h:#define SCTP_PCBHASHSIZE 256 Michael has look at that. > netinet/tcp_syncache.c:#define TCP_SYNCACHE_HASHSIZE 512 Again this is not per connection or socket. It depends on the number of concurrent SYN's waiting on SYN/ACK-ACK for a listen socket. This should be fine and it has overflow protection. If a SYN entry is lost it reverts to syncookies. > Any of these look like good targets? I think most could be looked at. I've only glanced. I can > provide deltas. -- Andre