Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Dec 2001 08:11:19 +1030
From:      Richard Sharpe <sharpe@ns.aus.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        Alexander Haderer <alexander.haderer@charite.de>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD performing worse than Linux?
Message-ID:  <3C07FCFF.4070008@ns.aus.com>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
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




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