From owner-freebsd-performance@FreeBSD.ORG Wed Jun 30 16:49:49 2004 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CDE8816A4CE for ; Wed, 30 Jun 2004 16:49:49 +0000 (GMT) Received: from utils.dsgx.org (Fadel.org [66.90.92.181]) by mx1.FreeBSD.org (Postfix) with ESMTP id 69F0E43D55 for ; Wed, 30 Jun 2004 16:49:49 +0000 (GMT) (envelope-from fabulous@t7ds.com.br) Received: from mx2.brasnet.org (irc.uninet.com.br [200.220.31.194]) by utils.dsgx.org (Postfix) with ESMTP id E96C3D7A543 for ; Wed, 30 Jun 2004 13:49:31 -0300 (BRT) Received: from [201.9.183.163] (localhost [127.0.0.1]) by mx2.brasnet.org (Postfix) with ESMTP id 35A3613C for ; Wed, 30 Jun 2004 13:49:02 -0300 (BRT) Message-ID: <40E2EF4D.3050508@t7ds.com.br> Date: Wed, 30 Jun 2004 13:50:21 -0300 From: fabulous User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8a1) Gecko/20040520 X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-performance@freebsd.org References: <40E1A47D.6020709@t7ds.com.br> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: net.inet.tcp.sendspace X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 16:49:49 -0000 Thank you very very much.. but sysctl sendspace/recvspace will be the limits then? can I set SO_SNDBUF to something higher than tcp.sendspace? I'm thinking of setting tcp.sendspace to 64k and using setsockopt on ircd to set it to 2k (why an irc connection would need more than that?), so apache will use 64k and ircd 2k.. am I right? :P []'s Sean Chittenden wrote: >> Is there any way to change its value according to the connection's uid >> or port? > > > Not with sysctl(8). You can by hacking the application and adding a few > setsockopt(2) calls, specifically the SO_RCVBUF and SO_SNDBUF options. > Here's a sample snippit you could follow: > > /* Add these #includes if they aren't already there */ > #include > #include > > /* Add this to the top of the function that calls listen(2) */ > int rcvbuf = 4096; > int sndbuf = 4096; > > /* And add these calls before the application makes its listen(2) call. > You may find that some applications are already setting their send and > receive buffer sizes. */ > if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &rcvbuf, sizeof(rcvbuf)) != 0) > err(EX_OSERR, "setsockopt(2) for SO_RCVBUF failed"); > > if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sndbuf, sizeof(sndbuf)) != 0) > err(EX_OSERR, "setsockopt(2) for SO_SNDBUF failed"); > >> I need small sendspaces to ircd and bigger ones to apache.. > > > Add the above to each of the applications before they make their > listen(2) calls. It's a shame more applications don't let you tweak > this value via a config file. > > -sc >