Date: Mon, 10 May 1999 21:01:11 +0400 (MSD) From: "Sergey Ayukov (mailing lists)" <asv1@crydee.sai.msu.ru> To: Doug Rabson <dfr@nlsystems.com> Cc: Mats Lofkvist <mal@algonet.se>, stable@FreeBSD.ORG Subject: Re: NFS question.. Message-ID: <Pine.BSF.4.05.9905102008190.5298-100000@crydee.sai.msu.ru> In-Reply-To: <Pine.BSF.4.05.9905101750340.447-100000@herring.nlsystems.com>
index | next in thread | previous in thread | raw e-mail
On Mon, 10 May 1999, Doug Rabson wrote:
> > Well, I understand the issues (or at least I think so). But I am
> > interested in fast, working NFS implementation (which I know could exist
> > because Linux does it) and not in explanations (system administration is
> > not my primary job). I can trade some bit of stability for performance in
> > case of safe/unsafe NFS write modes.
>
> Linux is fast because it violates the spec (this really pisses me off).
Specification violation only affects server, right? Therefore I don't see
anything terribly wrong with loose play with specs on server to get
reasonable performance. Especially with such a poor design as NFSv2.
> The specification for NFSv2 states that the reply to a write rpc shouldn't
> be sent until the write has been completed. From rfc1094:
[skipped]
> The linux server appears to ack the write as soon as it has been handed
> off to the kernel's buffer cache (which is certainly not stable storage).
> If you want FreeBSD to do this, you can set the sysctl variable
> vfs.nfs.async to nonzero. The default for this is off since turning it on
> risks data loss.
I have tried it now. Performance numbers are below. Client is OS/2 NFS,
with rsize and wsize of 8192.
NFSD Host OS Network Throughput, KB/s Comments
speed Read Write
FreeBSD 3.1 100 4500 610 ! vfs.nfs.async=1
FreeBSD 3.1 100 550 vfs.nfs.async=0
FTP->FreeBSD 100 6000 3000
FreeBSD 3.1 10 1040 560 vfs.nfs.async=1
FreeBSD 3.1 10 330 vfs.nfs.async=0
Linux 10 1020 800 !
Solaris 7 (i386) 10 900 480
100Mbit segment is clean (it's just a crossover cable, actually) while
10Mbit segment is more or less loaded. As you see, there's no significant
performance improvement with vfs.nfs.async=1 (BTW, where can I find the
information about all sysctl variables?) The figure 4500KB/s on read
apparently involves disk cache because hard drive itself can't sustain it.
FTP read is only 6MB/s due to OS/2 TCP/IP stack limitations and measuring
problems (the file I was testing on is just 12MB). FTP write is limited by
both local read and remote write.
> Alternatively you can use NFSv3 which uses a more complex protocol which
> allows the server to delay the writes safely. If the linux clients can't
> do NFSv3, perhaps you would consider replacing them with FreeBSD
> clients...
I have DOS and OS/2 clients, and I can't change that, unfortunately. While
performance for DOS clients is more or less acceptable (they are not very
fast machines anyway), I am concerned about OS/2 client performance.
Windoze clients connect to Samba which unfortunately is also very slow on
writes for unknown reasons, but that's another thread...
---------------------------------------------------------------------------
Dr. Sergey Ayukov Sternberg Astronomical Institute
http://www.ayukov.com Moscow, Russia
http://crydee.sai.msu.ru/index-asv.html
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9905102008190.5298-100000>
