Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jul 2002 08:07:08 -0500
From:      "Jaime Bozza" <jbozza@thinkburst.com>
To:        "'Matthew Dillon'" <dillon@apollo.backplane.com>
Cc:        "'Barney Wolff'" <barney@tp.databus.com>, "'Olaf R'" <olaf@keghouse.net>, <stable@FreeBSD.ORG>
Subject:   RE: RE: Abominable NFSv3 read performance / FreeBSD server / Solaris client
Message-ID:  <02b601c234a5$58d334c0$6401010a@bozza>
In-Reply-To: <200207252314.g6PNEPUR035516@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Similar thing here:

# mount -o -T /...
# time dd if=test of=/dev/null bs=32k
1982+1 records in
1982+1 records out
64953143 bytes transferred in 6.400937 secs (10147443 bytes/sec)

I still can't get those speeds with the Solaris client (even with UDP -
though it's close), so it's possible there's another factor.  I'm not
concerned (yet) at tweaking maximum efficiency.  Just effeciency all by
itself would be fine at this point, and with delayed_acks on, transfers
go down the drain.

I'm still messing with attempting to get the windows to actually
increase for that better fix, but I've been unsuccessful so far.


Jaime



-----Original Message-----
From: Matthew Dillon [mailto:dillon@apollo.backplane.com] 
Sent: Thursday, July 25, 2002 6:14 PM
To: Jaime Bozza
Cc: 'Barney Wolff'; 'Olaf R'; stable@FreeBSD.ORG
Subject: Re: RE: Abominable NFSv3 read performance / FreeBSD server /
Solaris client


:Ok, I've now been (almost) successful in getting Solaris to FreeBSD to
:work the same way as Solaris to Solaris.
:
:Solaris has a parameter tcp_deferred_ack_interval that is set to a
:default of 100.  This sounded like is was causing the 1/10 second
:delays.  I dropped it down to 10.  Suddenly, NFS was tons faster at the
:default rsize.  (I started out at 150 seconds for a 64MB file or so,
and
:this single change moved it up to 20 seconds)
:
:I see that FreeBSD (net.inet.tcp.delacktime?) uses 100 as well.
:Searching Google, I came up with a few discussions on the deferred_ack
:parameter and in almost all cases people were lowering it to 10.
:
:The question still is why do the delays happen across platforms and not
:when connecting on the same platform?
:
:
:Jaime

    From my read it's because Solaris is not implementing the TCP 
    protocol spec correctly.  When data is streaming the TCP protocol
    is supposed to ack every other packet, even with delayed acks turned
    on.  Solaris is not doing this.

    Your solution seems reasonable though it will not completely solve
the
    problem.  A permanent solution, yielding maximal streaming, would be
    to increase solaris's TCP receive window.  With properly sized TCP
    buffers I can run NFS over TCP between two FreeBSD boxes at the line
    rate (11-12 MBytes/sec)

test1# mount_nfs -T apollo:/FreeBSD /mnt
test1# nfsiod -n 4
test1# dd if=test of=/dev/null bs=32k
2048+0 records in
2048+0 records out
67108864 bytes transferred in 5.795125 secs (11580227 bytes/sec)


						-Matt





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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?02b601c234a5$58d334c0$6401010a>