NFS File Handle Affinity ported to new NFS server

Bob Friesenhahn bfriesen at simple.dallas.tx.us
Sat Apr 6 14:44:30 UTC 2013


On Thu, 4 Apr 2013, Kenneth D. Merry wrote:

> Hi folks,
>
> I have ported the old NFS server's File Handle Affinity (FHA) code so that
> it works with both the old and new NFS servers.
>
> This sped up sequential reads from ZFS very significantly in my test
> scenarios.
>
> e.g. a single stream read off of an 8-drive RAIDZ2 went from about 75MB/sec
> to over 200MB/sec.
>
> And with 7 read streams from 7 Linux clients coming off of a 36-drive
> RAID-10, I went from about 700-800MB/sec to 1.7GB/sec.  (This is over
> 10Gb ethernet, with 2 aggregated 10Gb ports on the server end.)
>
> The reason for the speedup is that Linux is doing a lot of prefetching, and
> those read requests all wound up going to separate threads in the NFS
> server.  That confused the ZFS read prefetch code, and caused it to throw
> away a lot of data.

This seems like a huge improvement.  It also raises questions for me. 
I have been complaining about single-file zfs prefetch performance (to 
slow of a prefetch ramp) by user-space applications on the Illumos zfs 
list.  Does the underlying zfs code actually know about requesting 
"threads" rather than an open file handle?  If multiple threads read 
in turn from the same user-space open file handle, will the prefetch 
become confused due to use of multiple reading threads?

Bob
-- 
Bob Friesenhahn
bfriesen at simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/


More information about the freebsd-fs mailing list