Re: [PATCH] zerocopy NFS updated

Andrew Theurer
2002-04-20T15:46:03Z

> Hi,
>
> > With all this talk on serialization on UDP, and have a question. first,
let
> > me explain the situation. I have an NFS test which calls 48 clients to
read
> > the same 200 MB file on the same server. I record the time for all the
> > clients to finish and then calculate the total throughput. The server is
a
> > 4-way IA32. (I used this test to measure the zerocopy/tcp/nfs patch)
Now,
> > right before the test, the 200 MB file is created on the server, so
there is
> > no disk IO at all during the test. It's just an very simple cached
read.
> > Now, when the clients use udp, I can only get a run queue length of 1,
and I
> > have confirmed there is only one nfsd thread in svc_process() at one
time,
> > and I am 65% idle. With tcp, I can get all nfsd threads running, and
max all
> > CPUs. Am I experiencing a bottleneck/serialization due to a single UDP
> > socket?
>
> What version do you use?
> 2.5.8 kernel has a problem in readahead of NFSD.
> It doesn't work at all.

I have this problem on every version I have used, including 2.4.18, 2.4.18
w/ Niel's patches, 2.5.6, and 2.5.7. One other thing I forgot to mention:
If I set the number of resident nfsd threads to "2", I can get 2 nfsd
threads running at once (nfsd_busy = 2), along with ~30% improvement in
throughput. If I use any other qty of resident nfsd threads, I always get
exactly 1 nfsd threads running (nfsd_busy = 1) during this test. With tcp
there is no serialization at all. I can get nearly 48 nfsd threads busy
with the 48 clients all reading at once.

-Andrew