Amazon Ad

Featured Post

Thursday, May 13, 2021

Analyzing NAS (NFS/CIFS) Performance

 NAS Cheatsheets


This blog is dedicated to those sysadmins and IT storage admins who are implementing network-attached storage of any type and protocol - file-based and block-based, Ethernet and FC.

The main goal is to SAVE YOU TIME. The blog contains real-life examples and tips.


Rules of the house:

1. Enjoy the free help and email/post comments and requests.

2. Contribute by clicking on the ads.

3. Please - this blog is not about choosing technologies and vendors. The idea is to help implementing computer storage faster and smarter, not about choosing in between the zillion options available.


NFS Performance Analysis for the masses


Surprise - You don't have to be an NFS performance guru to reach some interesting conclusions regarding your NFS traffic.

Real Life Example: Users complain - "access to /projects/ourproject is slow".

Research:

1. Build the "story" around the problem:

1.1. When did the problem start?

1.2. Does it occur only from specific hosts, to specific users, on/from/to specific networks, does it happen with other protocols (SMB/CIFS, HTTP, FTP to name a few)?

2. Review the NFS environment:

2.1. Pick one NFS host (I assume it's a Unix box, exact commands may differ) as your main research target, and do not look on other hosts from that moment. There are too many outputs and details to care about already.

2.2. Client OS versions.

2.3. NFS mount options and transfer size units.

2.4. NFS and RPC errors.

2.5. NFS operations mix.


NFS Clients

What should be my suspicion level at the client itself?


It's better put some reality on the table - experience shows that NFS performance could dramatically improve as of patches, available from the Unix vendor. The following lists the Unix NFS clients ordered by my subjective "NFS Clients Ranking" or in other words - how much this client sucks compared to others:

* Linux 2.4.20/2.6.x and up - Linux is the best. Can easily outperform other NFS clients with its excellent out-of-the-box performance, tunings rarely required. Excellent review of details available here: XXX.

* FreeBSD - I don't have enough experience here, as many Internet sites (the really large ones) use FreeBSD, I expect pretty much the same of Linux. Watch out of potentially small transfer size units (see Transfer Size section).

* Solaris - Used to be the King of NFS, don't waste your time tuning any old versions (prior to 2.8.x), usually suck without latest patches, available here: .

* HP-UX, AIX - Patches, patches, patches. These NFS clients are not the major focus for these vendors, so beware of weird NFS behaviours and bugs.


Note: This is a purely subjective list. Use as a simple reference to the time you should expect to spend on tuning these clients. Experience may vary, mostly latest OS releases fully-patches clients should reach close-to-optimum performance.


NFS mount options


Review the contents of the following files:

/etc/fstab - Linux, FreeBSD

/etc/vfstab - Solaris

/etc/filesystems - AIX

HP-UX


Use the "mount" command, look at /proc/mounts (Linux).


Modern NFS clients default to NFS over TCP. Most likely that's what you want, and that's what you should look for.