projects techreports press lab location staff
citi top.2 top.3
citi mid.3
bot.1 bot.2 bot.3

Projects: Linux NFS Client Performance Project

Linux NFS FAQ and How-To

FAQ and How-To

NFS-related RFCs

RFC 1094: NFS: Network File System Protocol Specification
The Sun Network Filesystem (NFS) protocol provides transparent remote access to shared files across networks. The NFS protocol is designed to be portable across different machines, operating systems, network architectures, and transport protocols. This portability is achieved through the use of Remote Procedure Call (RPC) primitives built on top of an eXternal Data Representation (XDR).
RFC 1813: NFS Version 3 Protocol Specification
This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations.
RFC 1831: RPC: Remote Procedure Call Protocol Specification Version 2
This document describes the ONC Remote Procedure Call (ONC RPC Version 2) protocol as it is currently deployed and accepted. "ONC" stands for "Open Network Computing".
RFC 1832: XDR: External Data Representation Standard
This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted.
RFC 2623: NFS Version 2 and Version 3 Security Issues and the NFS Protocol's Use of RPCSEC_GSS and Kerberos V5
This memorandum clarifies various security issues involving the NFS protocol (Version 2 and Version 3 only) and then describes how the Version 2 and Version 3 of the NFS protocol use the RPCSEC_GSS security flavor protocol and Kerberos V5. This memorandum is provided so that people can write compatible implementations.
RFC 2624: NFS Version 4 Design Considerations
This design considerations document is meant to present more detail than the working group charter. Specifically, it presents the areas that the working group will investigate and consider while developing a protocol specification for NFS version 4. Based on this investigation the working group will decide the features of the new protocol based on the cost and benefits within the specific feature areas.
RFC 3010: NFS version 4 Protocol
NFS (Network File System) version 4 is a distributed file system protocol which owes heritage to NFS protocol versions 2 [RFC1094] and 3 [RFC1813]. Unlike earlier versions, the NFS version 4 protocol supports traditional file access while integrating support for file locking and the mount protocol. In addition, support for strong security (and its negotiation), compound operations, client caching, and internationalization have been added. Of course, attention has been applied to making NFS version 4 operate well in an Internet environment.

Software Tools

BMon A simple tool to measure how much data is sent over a period of time and calculates the amount of bandwidth used. Runs on the client it monitors. CITI has modified version 0.2.2 to allow the user to redirect the output to a logfile.
Homepage :: Source
Bonnie Bonnie performs a series of tests on a file of known size. For each test, Bonnie reports the bytes processed per elapsed second, per CPU second, and the % CPU usage (user and system).
Homepage :: Source
City-OLTP An online transaction processing benchmark developed as a thesis project and patterned after TCP-C. CITI uses this benchmark to examine the performance of the Linux NFS client when used in as the file system for a database.
Homepage :: Source
IOzone IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems.
Iperf Another bandwidth measurement tool. This is run on two different machines and it measures the bandwidth available between the two machines. Helps to verify the network environment and to tune TCP parameters for maximum performance.
Homepage :: Source
PGBench A simple tool that comes with the PostgreSQL database package that allows DBA's to measure and tune a databases performance.
Postmark Postmark is used to simulate heavy small-file system loads with a minimal amount of software and configuration, which inturn will provide complete reproducibility. The benchmark was created to simmulate a mail server scenario with many small files that are constantly being created, read, written or deleted. It measures the transaction rates of these files for a workload that resembles a large Internet electronic mail server.
Homepage :: Source
SpecWeb99 An industry standard Web Server benchmark. CITI uses this tool to generate a load on a webserver using NFS to retrieve its web pages. Along with tcpdump and other tools, we can compare the behavior of the Linux NFS client implementation in this environment to the behavior of another NFS client implementation.

kprofile is a patch to the linux kernel. It allows one to easily put timers into the kernel, and view the results through a proc interface. Also included is a perl script that puts the timer results into an html page.

kprofile is under development by James Newsome. For documentation, see net/sunrpc/kprofile.c and include/linux/sunrpc/kprofile.h
Source (Updated 1/25/2002)


rpcstat consists of a patch to the linux kernel, which makes statistics about RPC activity available via a /proc interface. Also included is a c program used to gather these statistics at a given interval, with output ideal for gnuplot.

For more information, if you have comments or suggestions, or if you're interested in participating in the project, send e-mail to:

Last modified: Wed Jan 16 14:48:44 EST 2002 projects | techreports | press | lab | location | staff Email address
or call +1 734 763 2929
Copyright © 1996-2013
The Regents of the University of Michigan