Optimizing NFS Performance: Tuning and Troubleshooting NFS on HP-UX Systems
Authors: Dave Olker
Venue:  (2002)

From the Book:IntroductionNetwork File System (NFS) has been the industry standard protocol for remote file access on the UNIX operating system platform for many years. It is part of the Open Network Computing software family originally developed by Sun Microsystems.In a nutshell, NFS is a client-server network-based protocol that allows one system to seamlessly access files and directories that physically reside on another system. At one time or another, most UNIX users have used NFS &#151 whether they realized it or not &#151 to access resources such as: data files, home directories, e-mail folders, and application binaries. NFS has become a staple in most large UNIX-based environments and is therefore considered a critical component of every flavor of UNIX, as well as many non-UNIX based operating systems.Why another book about NFS?While there are several books available today that describe the NFS protocol itself, there is very little information in those books that specifically describes how to properly tune NFS systems for optimal performance. Of the performance related information that is available, the vast majority pertains only to tuning NFS servers. People sometimes forget that without well-tuned NFS clients it doesn't matter how fast your server is; you'll still end up with poor performance. In order to achieve optimal NFS performance, both clients and servers need to be considered.Admittedly, no book could possibly hope to accurately explain how best to configure every vendor's NFS systems. Thus, this book concentrates specifically on tuning HP-UX systems. While most of the concepts discussed in this book would apply to any vendor's NFSimplementation, this book contains numerous HP-UX-specific tuning recommendations, including describing undocumented command-line options and undocumented kernel parameters, that can dramatically influence NFS behavior and performance on HP-UX systems.Another factor driving the demand for NFS performance information is the recent shift in the storage industry from Direct Access Storage Devices (DASD) to centralized or consolidated storage models, including Storage Area Networks (SAN) and Network-Attached Storage (NAS). Many hardware vendors, HP included, are releasing storage solutions specifically designed to compete in the SAN and NAS arenas. NFS is a central component in HP's NAS offerings, which has spurred an increase in demand for information about how to properly configure and tune HP's NFS implementation.Finally, HP recently released HP-UX version 11i, which included support for the new Superdome hardware platform. HP implemented numerous NFS changes in this release of HP-UX; however, most of these differences are not currently described in any customer-viewable documentation. These NFS implementation differences are explained throughout this book.Who is the intended audience for this book?The target audience for this book includes system administrators, network administrators, and storage administrators who want to learn how to configure their NFS client and server systems for optimal performance. Other interested parties include anyone wanting to learn more about HP's NFS implementation, or anyone wanting a better understanding of the various kernel and user-space components that make up the NFS product family.This book is not intended as a replacement for the HP-UX "Installing and Administering NFS Services" manual. Some familiarity with basic UNIX and NFS concepts is assumed.NFS performance tuning methodology used in this bookThere is much more to tuning NFS for performance than making sure the right number of nfsds are running on the server. In many ways, NFS is similar to any other network-based application in that it competes for critical system resources such as disk, network, memory, and kernel tables, with all other running processes. In order to optimize NFS performance, many facets of the client and server systems must be interrogated and properly configured.NFS is heavily dependent upon many different subsystems (i.e. filesystems, network, buffer cache memory, hostname resolution, etc.) and is therefore susceptible to performance problems in these subsystems. In other words, if the performance of the network is slow, NFS throughput will most likely suffer. If local filesystem read and write performance on the NFS server is slow, there is a good chance that NFS read and write throughput to this server will be slow. Thus, when investigating any NFS performance issue it is important to perform a "sanity check" of the overall environment in which the clients and servers reside, in addition to analyzing the NFS-specific configuration of the systems themselves.The tuning methodology prescribed in this book involves looking at the overall NFS environment and then analyzing the various individual NFS components.Organization of this bookIn keeping with the tuning methodology outlined above, the book begins by discussing two primary environmental factors that can directly influence NFS performance: the network and the configuration of the NFS server's filesystems. Chapter 1 &#151 "Network Considerations" discusses the importance of understanding the underlying network topology separating your clients and servers, as well as gauging the throughput capabilities of your network. Chapter 2 &#151 "Local Filesystem Considerations" describes the many factors that can influence the behavior and performance of local filesystems, as well as provides tools and tips for gauging the throughput capabilities of your filesystems.The next several chapters drill down into the various NFS client and server elements that make up the NFS protocol family, including the optional AutoFS and CacheFS components. The behavior of these components and their effect on NFS performance is discussed. In addition, each of these chapters includes a troubleshooting section designed to help isolate, identify, and resolve problems specific to each of these critical pieces. Chapter 3 &#151 "biod Daemons" explains the significance of the client-side block I/O daemons, and how to determine the best number of biods to run on a given client. Chapter 4 &#151 "nfsd Daemons and Threads" discusses the various user-space daemons and kernel-space threads used by the server system to process inbound NFS requests. It offers insight into how HP-UX manages the nfsd daemons that service UDP requests differently than the nfsktcpd threads used to service TCP requests. It also explains how to identify the proper number of daemons and threads to configure on a specific server. Chapter 5 &#151 "rpc.mountd" describes the se daemon used by HP-UX to implement the MOUNT protocol. It explains the many services this daemon performs, and it outlines the many factors that can influence rpc.mountd behavior and performance. Chapter 6 &#151 "rpc.lockd and rpc.statd" discusses the daemons used by HP-UX to implement the Network Lock Manager (NLM) and Network Status Monitor (NSM) protocols, which allow NFS clients to obtain and recover locks on remote files. This chapter explains how these two daemons work to service lock requests, and it offers suggestions for configuring your systems to avoid potential NFS file lock hangs and to ensure optimal file locking performance. Chapter 7 &#151 "Automount and AutoFS" describes the two client-side protocols offered on HP-UX systems that allow NFS filesystems to be automatically mounted when referenced and automatically unmounted when they become idle. It explains the many differences between the legacy Automount product and the new AutoFS protocol, and it outlines the many configuration factors to consider when using either of these products to ensure optimal NFS behavior and performance. Chapter 8 &#151 "CacheFS" provides an overview of the CacheFS protocol, which is a client-side filesystem caching mechanism. It explains how CacheFS works, the benefits it can provide, and how to configure it for optimal performance. Also described is an HP-specific enhancement &#151 the rpages mount option &#151 that can dramatically increase the effectiveness of CacheFS when caching NFS-mounted application binaries.The next two chapters deal specifically with how the NFS protocol has evolved over time, and how the new features and functionality introduced in newer versions of NFS, including support for network transport protocols other than UDP, can benefit NFS performance. Chapter 9 &#151 "NFS Protocol Version 2 vs. NFS Protocol Version 3" describes the many differences between version 2 and version 3 of the NFS protocol, and how these differences can directly affect NFS behavior and performance. It explains why an NFS PV3 filesystem will usually outperform a PV2 filesystem. It also lists several corner-case scenarios where a PV2 filesystem could potentially outperform a PV3 filesystem, and how to re-configure the PV3 filesystem to match or beat the PV2 performance in these situations. Chapter 10 &#151 "NFS/UDP vs. NFS/TCP" explains the many differences between the UDP/IP and TCP/IP network transport protocols and how NFS behaves differently depending upon which underlying protocol it uses.The final chapters focus on two critical aspects of HP-UX &#151 buffer cache memory and kernel parameters &#151 and how these components can dramatically affect NFS performance. Chapter 11 &#151 "Buffer Cache" describes the HP-UX buffer cache memory subsystem and how NFS clients and servers use buffer cache resources to improve performance. It explains the differences between the "static" and "dynamic" cache allocation mechanisms and the reasons for choosing one method over the other. It also offers recommendations for sizing this critical system resource on NFS client and server systems. Chapter 12 &#151 "Kernel Parameters" provides a detailed description of the numerous HP-UX kernel parameters that can directly influence NFS performa recommendations for each parameter, and describes the many tools available for inspecting the current values of these parameters and monitoring their utilization.Additional information is included in two appendices located at the back of the book. Appendix A &#151 "Summary of Tuning Recommendations" summarizes the numerous recommendations made throughout the book. Appendix B &#151 "Patching Considerations" explains the critical importance of keeping the operating system on your NFS client and server systems up-to-date with available patches. Keeping your systems properly patched can not only improve NFS performance, in many cases patches are required in order to enable specific NFS functionality. The ACM Portal is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc. Terms of Usage Privacy Policy Code of Ethics Contact Us Useful downloads: Adobe Acrobat QuickTime Windows Media Player Real Player