Throughput problems with NFS between Linux and FreeBSD

John-Mark Gurney gurney_j at efn.org
Fri Sep 19 11:26:44 PDT 2003


Richard Sharpe wrote this message on Fri, Sep 19, 2003 at 10:38 -0700:
> We recently encountered a problem with NFS throughput between a FreeBSD 
> server (we are using 4.6.2, but the same code seems to be in 5.1 as well).
> 
> When using Linux 2.4.19 or 2.4.21 as a client, although this might extend 
> to other clients, and copying a large file, you will see the behavior 
> shown in 

[...]

> The problem seems to be the following code
> 
>         if (so->so_type == SOCK_STREAM)
>                 siz = NFS_MAXPACKET + sizeof (u_long);
>         else
>                 siz = NFS_MAXPACKET;
>         error = soreserve(so, siz, siz);
> 
> in src/sys/nfs/nfs_syscalls.c.
> 
> We added a sysctl to allow finer control over what is passed to soreserve.
> 
> With the fix in, it goes up to around wire speed when lots of data is in 
> the cache.

What is the fix?  You don't say what adjustments to soreserve's parameters
are necessary to improve performance?  Have you done testing against other
clients to see how your changes will affect performance on those machines?

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-hackers mailing list