Terrible NFS4 performance: FreeBSD 9.1 + ZFS + AWS EC2
Rick Macklem
rmacklem at uoguelph.ca
Mon Jul 8 00:31:40 UTC 2013
I wrote:
> Berend de Boer wrote:
> > Hi All,
> >
> > I've just completed a round of NFS testing on FreeBSD 9.1 on AWS.
> > The
> > underlying file system is ZFS. I have a real nfs killer test:
> > doing
> > an "svn update" of a directory of 3541 files.
> >
> > Performance on the NFS server itself is good: checking this out
> > takes
> > 11 seconds (doing the same on a not really comparable Linux NFS
> > server
> > is 43 seconds).
> >
> > Doing this on a client writing to an NFS mounted home directory is
> > however terrible. Really terrible. This takes 25 minutes! With
> > "sync=disable" it's 16 minutes.
> >
> > (doing this against the underpowered Linux NFS server is about 4.5
> > minutes).
> >
> > The problem might be that the NFS server (nfsd) runs at 70-80% CPU.
> > So
> > my writing speed is cpu bound (go figure).
> >
> See below w.r.t. patch that reduces cpu overheads in the DRC.
>
> > Repeating this with nfs4 + udp: doesn't work at all, get
> > input/output
> > error after a few files.
> >
> The RFCs for NFSv4 require use of transport protocols that include
> congestion control --> no UDP support. What client are you using?
> (If it is a FreeBSD one, I need to patch it to make the mount fail.
> Since NFSv4 over UDP was done in early testing, the client might
> still have that bogus code in it.)
>
> > nfs3: 1m55s (nfsd cpu is in the 6%-8% range)
> >
> > Varying tcp/udp, lock/nolock, sync/async, or enabling zfs
> > sync=standard doesn't make any particular difference. All timing
> > were
> > within the 1m49s - 2m3s range.
> >
> > So what's up with NFS4 on FreeBSD?
> >
> Please try this patch:
> http://people.freebsd.org/rmacklem/~drc4.patch
Oops, it actually is:
http://people.freebsd.org/~rmacklem/drc4.patch
> - After you apply the patch and boot the rebuilt kernel, the cpu
> overheads should be reduced after you increase the value of
> vfs.nfsd.tcphighwater. The larger you make it, the more space
> (mbuf clusters and other kernel malloc'd data structures) the DRC
> uses, but hopefully with reduced CPU overheads.
> The plan is to commit a patch semantically similar to this to head
> and
> then MFC it someday. ivoras@ has a similar patch, but written in
> cleaner
> C. However, I've never gotten around to combining the patches into a
> version for head. Someday I'll get to it, but not in time for 9.2.
>
> Good luck with it, rick
> ps: There is also ken@'s file handle affinity patch, which is in head
> (and I think stable/9), but it only works for NFSv3 at this
> point.
> Hopefully we'll come up with a patch for NFSv4 for it someday.
>
> > --
> > All the best,
> >
> > Berend de Boer
> >
> >
> > ------------------------------------------------------
> > Awesome Drupal hosting: https://www.xplainhosting.com/
> >
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
>
More information about the freebsd-fs
mailing list