Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Nov 2001 15:08:43 -0600
From:      Alfred Perlstein <bright@mu.org>
To:        rsharpe@ns.aus.com
Cc:        Matthew Dillon <dillon@apollo.backplane.com>, Alexander Haderer <alexander.haderer@charite.de>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD performing worse than Linux?
Message-ID:  <20011130150843.L46769@elvis.mu.org>
In-Reply-To: <3C07FCFF.4070008@ns.aus.com>; from sharpe@ns.aus.com on Sat, Dec 01, 2001 at 08:11:19AM %2B1030
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> <3C07FCFF.4070008@ns.aus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Richard Sharpe <sharpe@ns.aus.com> [011130 15:02] wrote:
> 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.

Can you try these two commands:

sysctl -w net.inet.tcp.recvspace=65536
sysctl -w net.inet.tcp.sendspace=65536

you can put them in /etc/sysctl.conf as:
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536

thanks,
-- 
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
 start asking why software is ignoring 30 years of accumulated wisdom.'
                           http://www.morons.org/rants/gpl-harmful.php3

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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