From owner-freebsd-hackers Fri Nov 30 13: 2: 7 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from cu518.adelaide.adsl.on.net (cu518.adelaide.adsl.on.net [150.101.236.10]) by hub.freebsd.org (Postfix) with ESMTP id A5BC337B417 for ; Fri, 30 Nov 2001 13:02:03 -0800 (PST) Received: from ns.aus.com (laptop.ns.aus.com [10.0.2.6]) by cu518.adelaide.adsl.on.net (8.11.0/8.11.0) with ESMTP id fAUN9P702923; Sat, 1 Dec 2001 09:39:25 +1030 Message-ID: <3C07FCFF.4070008@ns.aus.com> Date: Sat, 01 Dec 2001 08:11:19 +1030 From: Richard Sharpe Reply-To: rsharpe@ns.aus.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4) Gecko/20010917 X-Accept-Language: en-us MIME-Version: 1.0 To: Matthew Dillon Cc: Alexander Haderer , freebsd-hackers@FreeBSD.ORG Subject: Re: FreeBSD performing worse than Linux? References: <20011128153817.T61580@monorchid.lemis.com> <15364.38174.938500.946169@caddis.yogotech.com> <20011128104629.A43642@walton.maths.tcd.ie> <5.1.0.14.1.20011130181236.00a80160@postamt1.charite.de> <200111302047.fAUKlT811090@apollo.backplane.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Matthew Dillon wrote: > Well, this is embarassing. I can reproduce this completely running > 4.4-stable (Nov 17th kernel) on two machines. > > With newreno turned on, a TCP NFS mount only gets 80K/sec. With newreno > turned off on the transmit side, a TCP NFS mount gets 7MB/sec. The > state of the delayed-ack sysctl is irrelevant. This is without running > any nfsiod's (which would mask the degredation of the synchronous > messaging). I have upgraded to 4.4-STABLE, and have hacked in some changes to ata-dma.c (provided by Greg Lehey, but I had to do it by hand) so my drive is now running at UDMA 100. I have also ensured that disk write caching is on, which it seems to be by default in 4.4. These changes have made a difference to the NetBench and dbench runs (improved them), but they have made no difference to the tbench runs, which only do network stuff. The traffic in the tbench case is SMB taffic. Request/response, with a mixture of small requests and responses, and big request/small response or small request/big response, where big is 64K. I have switched off newreno, and it made no difference. I have switched off delayed_ack, and it reduced performance about 5 percent. I have made sure that SO_SNDBUF and SO_RCVBUF were set to 131072 (which seems to be the max), and it increased performance marginally (like about 2%), but consistently. I am still analysing the packet traces I have, but it seems to me that the crucial difference is Linux seems to delay longer before sending ACKs, and thus sends less ACKs. Since the ACK is piggybacked in the response (or the next request), it all works fine, and the reponse/request gets there sooner. However, I have not convinced myself that the saving of 20uS or so per request/response pair accounts for some 40+ Mb/s. -- Richard Sharpe, rsharpe@ns.aus.com, LPIC-1 www.samba.org, www.ethereal.com, SAMS Teach Yourself Samba in 24 Hours, Special Edition, Using Samba To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message