[Beowulf] NFS HPC survey results.

Fred Liu Fred_Liu at issi.com
Thu Jul 21 02:22:52 PDT 2016


Very informative!

Thank you so much!


Fred

> -----Original Message-----
> From: Beowulf [mailto:beowulf-bounces at beowulf.org] On Behalf Of Bill
> Broadley
> Sent: 星期四, 七月 21, 2016 7:19
> To: Beowulf at beowulf.org
> Subject: [Beowulf] NFS HPC survey results.
> 
> 
> Many thanks for all the responses.
> 
> Here's the promised raw data:
>     https://wiki.cse.ucdavis.edu/_media/wiki:linux-hpc-nfs-survey.csv
> 
> I'll summarize the 26 results below.  I'll email similar to those that asked.
> 
> Not everyone answered all questions.
> 
> 1) cluster OS:
>    72% Redhat/CentOS/Scientific linux or derivative
>    24% Debian/Ubuntu or derivative
>     4% SUSE or derivative
> 
> 2) Appliance/NAS or linux server
>     32% NFS appliance
>     76% linux server
>     12% other (illumos/Solaris)
> 
> 3) Appliances used (one each, free form answers):
>     * Hitachi BlueARC, EMC Isilon, DDN/GPFS, x4540
>     * Not sure - something that corporate provided. An F5, maybe...? Also a
>         Panasas system for /scratch.
>     * NetApp FAS6xxx
>     * netapp
>     * isilon x and nl
>     * Isilon
>     * NetApp
>     * Synology
> 
> 4) Which kernel do you use:
>     88% one provided with the linux distribution
>     12% one that I compile/tweak myself
> 
> 5) what kernel changes do you make
>     * CPU performance tweaking, network performance.
>     * raise ARP cache size, newer kernel than stock 3.2 was needed for newer
>       hardware 3.14 at the moment
>     * ZFS
> 
> 6) Do you often see problems like nfs: server 192.168.5.30 not responding,
>     timed out:
>     42.3% Never
>     23.1% Sometimes
>     19.2% rarely
>      7.7% daily
>      7.7% often
> 
> 7) If you see NFS time outs what do you do (free form answers)
>    * nothing
>    * nothing
>    * Restart NFSd, look for performance intensive jobs, sometimes increase
> NFSd.
>    * Look at what's going on on that server. That means looking at what the
>      disks are doing, what network flows are going to/from that server and
>      determine if the load is something to take action on or to let.
>    * Not much
>    * Reboot
>    * Resolve connectivity issue if any and run mount command on nodes. If this
>      doesn't fix it, then reboot.
>    * Ignore them, unless they become a problem.
>    * Look for the root cause of the issue, typically system is suffering network
>      issues or is overloaded by a user 'abuse/missuse'.
>    * diagnose and identify underlying cause
>    * Try to figure out who is overloading the NFS server (hard job)
>    * Troubleshoot, typically a machine is offline or network saturation
> 
> 8) which NFS options do you use (free form):
>    * tcp,async,nodev,nosuid,rsize=32768,wsize=32768,timeout=10
>    * nfsvers=3,nolock,hard,intr,timeo=16,retrans=8
>    * hard,intr,rsize=32768,wsize=32768
>    * all default
>    * async
>    * async,nodev,nosuid,rsize=32768,wsize=32768
>    * tcp,async, nodev, nosuid,timeout=10
>    * -rw,intr,nosuid,proto=tcp (mostly. Could be "ro" and/or "suid")
>    *
> rsize=32768,wsize=32768,hard,intr,vers=3,proto=tcp,retrans=2,timeo=600
>    * rsize=32768,wsize=32768
>    * -nobrowse,intr,rsize=32768,wsize=32768,vers=3
>    * udp,hard,timeo=50,retrans=7,intr,bg,rsize=8192,wsize=8192,nfsvers=3,
>      mountvers=3
>    * RHEL defaults
>    * default ones, they're almost always the best ones
>    * rw,nosuid,nodev,tcp,hard,intr,vers=4
>    *
> rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=t
> cp,
>      port=0,timeo=600,retrans=2,sec=sys,
> clientaddr=10.5.6.7,local_lock=none,
>      addr=10.5.6.1
>    * defaults, netdev,vers=3
>    * nfsvers=3,tcp,rw,hard,intr,timeo=600,retrans=2
>    * rw,hard,tcp,nfsvers=3,noacl,nolock
>    * default rhel6 (+nosuid, nodev, and sometimes nfsver=3)
>    * tcp, intr, noauto, timeout, rsize, wsize, auto
>    * nfsvers=3,rsize=1024,wsize=1024,cto
> 
> 9) Any explanations:
>    * We have not yet made the change to nfsv4, we use nolock due to various
>      application "issues", we do not hard set rsize/wsize as they have been
>      negotiating better values for a number of years on their own under v3,
>      and the timeout/retrans are a bit of a legacy set of values from working
> on
>      this issue of server overload. Hard was a choice on our end to pick that
>      having things hang definitely seemed better then having things fail and
> go
>      stale. We still agree with the choice of hard. Intr just helps to
>      "interupt" stuck things when needed.
>    * We like to be able to ctrl-C hung processes. For some systems we use
> larger
>      rsize/wsize if the vendor supports it.
>    * works for me without tewaks
>    * We didn't use tcp until the last couple of years.
>    * Probably needs a revisit- block size was set up for 2.x series kernels
>    * default of centos 7
>    * nfsv4 was not stable enough last time out, don't fix rsize/wsize as
>      client/server usually negotiate to 1M anyway
>    * We have frequent power outage (5+ times a year) and noauto helps our
> not to
>      hang on mounting nfs shares. Drawback is you have to manually mount.
> Time
>      out helps with this issue as well.
>    * These are adjusted if necessary for particular workloads
> 
> 10) what parts of the file system do you use NFS for (free form):
>    * /home
>    * /home
>    * /home
>    * /home
>    * /home
>    * /home
>    * /home
>    * /home and /apps
>    * We use NFS for the OS (NFSRoot), App tree, $HOME, Group dedicated
> space, as
>      well as some of our scratch spaces. All of these come from different NFS
>      servers.
>    * /home, /apps
>    * /home /opt /etc /usr /boot
>    * /home,/apps,
>    * /home, /apps, /scratch - all of 'em
>    * /home, long term project storage, shared software
>    * /cluster/home,/cluster/local,/cluster/scratch,/cluster/data
>    * home, apps, shared data
>    * /usr/local, /home
>    * /home , /apps
>    * various
>    * /home, /group, /usr/local
>    * /home, parts of /opt, some specific top level auto-mountable dirs
>    * What above is called /apps and /home for a few medium sized systems
>    * /home, /local, /opt, /diskless
>    * /home, /opt, diskless node images
> 
> 11) How many nodes can mount a single NFS server at once:
>     24% >= 512 nodes
>     20% 65-128 nodes
>     16% 1-16 nodes
>     12% 17-32 nodes
>     12% 257-512 nodes
>     12% 129-256 nodes
>      4% 33-64 nodes
> 
> 12) How many NFSd daemons do you run per NFS server
>      45.0% 1-16
>      13.6% 129-256
>      13.6% 65-128
>       9.1% 33-64
>       4.5% 17-32
>       4.5% 256-512
>       4.5% 512-1024
>       4.5% 2048-4096
> 
> 13) Do you use NFSd or user space
>      81.0% Kernel NFSd
>      14.3% User space
>       4.8% Both
> 
> 14) What interconnect do you use with NFS?
>      38.5% 10G
>      26.9% GigE
>      23.1% IB
>      11.5% Other
> 
> 15) If IB what transport (10 responses)
>      100% IPoIB
>         0% Other
> 
> 16) If IB, do you use connected mode (8 responses)
>      65.5% Connected mode
>      37.5% Don't use connected mode
> 
> 17) Do you use UDP or TCP (25 responses)
>      84% TCP
>      12% UDP
>       4% Other
> 
> 18) Which other network file systems do you use? (24 responses)
>      0% PNFS
>      58.3% Lustre
>      16.7% Ceph
>      12.5% BeeGFS
>      12.5% GlusterFS
>       8.3% None (Panansas, GPFS, HSM/SAM/QFS, or more than one of the
> above)
> 
> 19) Are the other network file systems more or less reliable than NFS?
>      58.3% Similar
>      16.7% I use only NFS
>      12.5% Much more reliable
>       4.2% Much less reliable
>       4.2% Somewhat less reliable
>       4.2% Somewhat more reliable
> 
> 20) Do you support MPI-IO (not just MPI)
>      70.8% no
>      20.8% yes
>       8.3% (yes, but nobody uses it)
> 
> 21) Any tips for making NFS perform better or more reliably?
>    * We start with the underlying block (raid/disks) setup that you are going to
> serve data out and plumb up from there. The key things here is choosing your
> raid stride/chunk sizes and insuring your file system is as aware of the raid
> layout for good alignment as you can. We do follow the esnet host tuning found
> at: http://fasterdata.es.net/host-tuning/linux/ on both client and server
> systems. We also bump up the rpc.mountd count to help insure successful
> mounts as we use autofs to mount a number of the nfs spaces. When a larger
> HPC job starts up on many nodes we did have a time where not all would be
> able to mount successfully if the server was under load. Increasing the
> rpc.mountd count helped. We also set async and wdelay on our exports on the
> servers.
>    * Kernel settings
>    * I've heard that configuring IB in RDMA boosts NFS performance
>    * We don't use NFS for high performance cluster data. That's Lustre's
> world.
> Where NFS is used for scientific data, it's in places where there are modest
> numbers of concurrent clients.
>    * more disks
>    * RPCMOUNTDOPTS="--num-threads=64"
>    * Try to optimize /etc/sysconfig/nfs as much as possible.
> 
> 22) Any tips for making NFS clients perform better or more reliably?
>    * Following the above mentioned esnet info at:
> http://fasterdata.es.net/host-tuning/linux/. I should note that for both client
> and server that are using IPoIB we use connected mode and set the MTU to
> 64k.
>    * Reducing the size of the kernel dirty buffer on the clients makes
> performance much more consistent.
>    * user reliable interconnect hw
>    * We've tried scripting NFS mounts w/o much success.
>    * Educate users on using the right filesystem for the right task
> 
> 23) Anything you would like to add:
> 
>     * We have also seen input from others that they see gains with the client
> option of 'nocto'. The man pages would suggest this has some risks so while we
> have tested and can see that certain loads see a gain from this we have not yet
> moved forward to deploy this option on our general setup. We are in process of
> testing our apps to insure we do not create other issues for apps if we do use
> this flag.  Another things we have been looking at is cachefilesd and seeing
> how well that helps for data that can easily be cached. For things like our
> application trees, the OS (we are NFSRoot booted), and even some user
> reference data sets this looks quite promising but we have not gone live with
> this yet either.
>    * We're always looking to improve our environment as well. We don't
> always have TIME to do so, of course.
>    * Horses for courses. NFS is great for shared software and home
> directories.
> It's pretty useless for high performance access from hundreds of compute
> nodes.
>    * Every storage system / file system I've ever seen or used has had its
> problems. There is no silver bullet (afaik). Use that which you have the
> competence to handle.
>    * We are currently struggling with NFS mounts. We use them extensively
> throughout our department. Problems are they hang constantly and when one
> person is using the share heavily it slows down other computers. We've done
> lots of research into optimizing NFS but always come back to the same issues
> (hanging mounts that don't recover w/o admin interaction). We would love to
> know what other people are doing. We are experimenting with ceph at the
> moment for future large storage needs.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf


More information about the Beowulf mailing list