dcsimg

Network File System

The Network File System is still commonly used to connect desktops to file shares and to interconnect compute nodes in high-performance clusters. By tuning NFS — using just a handful of parameters and measurements — you can help clients and servers run at peak performance. Here’s how.

August 2005

Network File System

A little bit of testing and tuning can yield big results

Guru Guidance

The Network File System is still commonly used to connect desktops to file shares and to interconnect compute nodes in high-performance clusters. By tuning NFS — using just a handful of parameters and measurements — you can help clients and servers run at peak performance. Here’s how.

Mark F. Komarinski

Much like gourmet cooking, performance tuning is a little bit of science and a little bit of art.

When cooking, you have to take account of the quality of your ingredients, the thermal characteristics of your oven or stovetop, and even things like the weather. Overcook and you get charcoal; undercook and nothing tastes quite right.

Similarly, when tuning performance, you have to account for the quality of the components, the characteristics of your NICs, switches, and disk drives, and even your TCP/IP implementation. Don’t tune enough and your hardware can’t realize its full potential; tune too much and you may realize good performance in some situations but suffer terrible performance for others.

In cooking and in tuning, somewhere in between is what you’re looking for.

If you run a cluster, chances are that your users are a demanding bunch. And more often than not, many of those demands are contradictory: the life sciences team wants to use BLAST (http://www.ncbi.nlm.nih.gov/BLAST/), whose databases often exceed one gigabyte. (You can think of BLAST as grep on steroids: given a genetic sequence, BLAST compares the sequence against a known database, perhaps humans or E. coli); Computing Services has a web-based front end that uses thousands of small files. And other researchers want summarized results from life sciences, a mix of file sizes that depend on the results from BLAST.

So what’s a cluster administrator to do? Compromise. Provide the best performance for the greatest number of applications.

Many clusters use the Network File System (NFS) to share files between nodes. (Moreover, NFS is also widely used to share files between servers and desktops and to provide filesystems to otherwise diskless workstations.) Indeed, NFS is a good general solution because it’s easy to configure, is built-in to Unix, Linux, and Mac OS X systems, and is available from third-parties for Windows. But NFS can be a blessing or a curse: configured improperly, it can reduce performance to 1% of total network capacity([ as benchmarked on the author’s cluster]). Configured optimally — by ferreting out hardware and software problems — it can run at close to 100% of network speed.

Let’s look at how to tweak your Network File System configuration and measure the effects.

NFS Server Considerations

Because NFS mounts one machine’s filesystems to another machine, the performance of NFS can be affected by all “points” — software and hardware — that connect the two endpoints. Here are some considerations:

Comments are closed.