2005-03-21 08:29:58

by Xin Zhao

[permalink] [raw]
Subject: Why is NFS write so slow?

Sorry for the dumb question.

I am trying to develop a new filesystem based on NFS, which runs in a
very fast network environment. I used the source code of NFS2, but
noticed that NFS write is very slow. Even if I changed wsize to 8192,
it still can only reach 1MB/s. I don't know why. Because the network
is extremely fast (over 100MB/s), I don't think network is the only
reason. Any other reason?

Is the NFS write synchronous? Does that means the NFS server will not
return before the data is flushed to disk? Because nfsd_write will
close the file every time, I will assume that the data will be flushed
to disk before return. However, even if I change nfsd_write to stop
closing file, the write speed is still very slow. Can someone give me
some advice about this?

Thanks in advance!

-x


2005-03-21 10:33:28

by Matthias Andree

[permalink] [raw]
Subject: Re: Why is NFS write so slow?

On Mon, 21 Mar 2005, Xin Zhao wrote:

> I am trying to develop a new filesystem based on NFS, which runs in a
> very fast network environment. I used the source code of NFS2, but
> noticed that NFS write is very slow. Even if I changed wsize to 8192,
> it still can only reach 1MB/s. I don't know why. Because the network
> is extremely fast (over 100MB/s), I don't think network is the only
> reason. Any other reason?
>
> Is the NFS write synchronous? Does that means the NFS server will not
> return before the data is flushed to disk?

Yes, that is the case here. You can use export or mount options to make
NFS asynchronous.

Plus, NFS3 has write clustering which may be worth a try depending on
your workload.

--
Matthias Andree

2005-03-21 10:48:47

by Raphael Jacquot

[permalink] [raw]
Subject: Re: Why is NFS write so slow?

Xin Zhao wrote:
> Sorry for the dumb question.
>
> I am trying to develop a new filesystem based on NFS, which runs in a
> very fast network environment. I used the source code of NFS2, but
> noticed that NFS write is very slow. Even if I changed wsize to 8192,
> it still can only reach 1MB/s. I don't know why. Because the network
> is extremely fast (over 100MB/s), I don't think network is the only
> reason. Any other reason?
>
> Is the NFS write synchronous? Does that means the NFS server will not
> return before the data is flushed to disk? Because nfsd_write will
> close the file every time, I will assume that the data will be flushed
> to disk before return. However, even if I change nfsd_write to stop
> closing file, the write speed is still very slow. Can someone give me
> some advice about this?
>
> Thanks in advance!

because NFS is now at version 4, so you're 2 versions late ?