Linux: Tune NFS Performance

What values can be tuned to improve NFS performance? How do I improve my client performance under Linux operating systems?

The mount command (mount.nfs4 and mount.nfs) allows you to fine tune NFS mounting to improve NFS server and client performance. However, there is no one-size-fits-all approach to NFS performance tuning. Servers can be configured for handling different workloads and may need to be tuned as per your setup. Please test and monitor both your server and client systems as you test different tuning options.

Recommended NFS Tuning Options For the Mount Command

  • noacl: Disables Access Control List (ACL) processing.
  • nocto: Suppress the retrieval of new attributes when creating a file.
  • rsize: The number of bytes NFS uses when reading files from an NFS server. The rsize is negotiated between the server and client to determine the largest block size that both can support. The value specified by this option is the maximum size that could be used; however, the actual size used may be smaller. Note: Setting this size to a value less than the largest supported block size will adversely affect performance.
  • wsize: The number of bytes NFS uses when writing files to an NFS server. The wsize is negotiated between the server and client to determine the largest block size that both can support. The value specified by this option is the maximum size that could be used; however, the actual size used may be smaller. Note: Setting this size to a value less than the largest supported block size will adversely affect performance.
  • noatime: Setting this value disables the NFS server from updating the inodes access time. As most applications do not necessarily need this value, you can safely disable this updating.
  • nodiratime: Setting this value disables the NFS server from updating the directory access time. This is the directory equivalent setting of noatime.
  • noac: Disable all forms of attribute caching entirely. This extracts a significant performance penalty but it allows two different NFS clients to get reasonable results when both clients are actively writing to a common export on the server.

Here is sample mount command with the above options:
# mount.nfs -o noacl,nocto, rsize=32768,wsize=32768 nfsserver:/sales /salesdata/

For more information read your local nfs and mount command man pages. Please note that most of the above options are also supported by other UNIX like operating systems such as OpenBSD, FreeBSD, AIX and so on.

This entry is 8 of 15 in the Linux / UNIX NFS File Server Tutorial series. Keep reading the rest of the series:

  1. CentOS / Redhat: Setup NFS v4.0 File Server
  2. Debian / Ubuntu Linux: Setup NFSv4 File Server
  3. Mac Os X: Mount NFS Share / Set an NFS Client
  4. RHEL: How Do I Start and Stop NFS Service?
  5. How To Restart Linux NFS Server Properly When Network Become Unavailable
  6. Linux Iptables Allow NFS Clients to Access the NFS Server
  7. Debian / Ubuntu Linux Disable / Remove All NFS Services
  8. Linux: Tune NFS Performance
  9. Mount NFS file system over a slow and busy network
  10. Linux Track NFS Directory / Disk I/O Stats
  11. Linux Disable / Remove All NFS Services
  12. Linux: NFS4 mount Error reason given by server: No such file or directory
  13. Linux NFS Mount: wrong fs type, bad option, bad superblock on fs2:/data3 Error And Solution
  14. CentOS / RHEL CacheFS: Speed Up Network File System (NFS) File Access
  15. Increase NFS Client Mount Point Security

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.