NFS Tricks and Benchmarking Traps

We describe two modifications to the FreeBSD 4.6 NFS server to increase read throughput by improving the read-ahead heuristic to deal with reordered requests and stride access patterns. We show that for some stride access patterns, our new heuristics improve end-to-end NFS throughput by nearly a factor of two. We also show that benchmarking and experimenting with changes to an NFS server can be a subtle and challenging task, and that it is often difficult to distinguish the impact of a new algorithm or heuristic from the quirks of the underlying software and hardware with which they interact. We discuss these quirks and their potential effects.

[1]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1988, TOCS.

[2]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[3]  Satish K. Tripathi,et al.  Improving NFS Performance Over Wireless Links , 1997, IEEE Trans. Computers.

[4]  Margo I. Seltzer,et al.  Structure and Performance of the Direct Access File System , 2002, USENIX ATC, General Track.

[5]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[6]  R. V. Meter Observing the effects of multi-zone disks , 1997 .

[7]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[8]  Thomas Ruwart File System Benchmarks, Then, Now, and Tomorrow , 2001, 2001 Eighteenth IEEE Symposium on Mass Storage Systems and Technologies.

[9]  Banu Özden,et al.  Disk scheduling with quality of service guarantees , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[10]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[11]  Margo I. Seltzer,et al.  The case for application-specific benchmarking , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[12]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[13]  Stavros Christodoulakis,et al.  A Comprehensive Analytical Performance Model for Disk Devices under Random Workloads , 2002, IEEE Trans. Knowl. Data Eng..

[14]  Margo I. Seltzer,et al.  File system aging—increasing the relevance of file system benchmarks , 1997, SIGMETRICS '97.

[15]  Margo I. Seltzer,et al.  Passive NFS Tracing of Email and Research Workloads , 2003, FAST.

[16]  Margo I. Seltzer,et al.  Disk Scheduling Revisited , 1990 .

[17]  Todd C. Mowry,et al.  Automatic compiler-inserted I/O prefetching for out-of-core applications , 1996, OSDI '96.

[18]  Jeffrey C. Mogul,et al.  Brittle metrics in operating systems research , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[19]  Rick Macklem,et al.  Not Quite NFS, Soft Cache Consistency for NFS , 1994, USENIX Winter.

[20]  Todd C. Mowry,et al.  Taming the memory hogs: using compiler-inserted releases to manage physical memory intelligently , 2000, OSDI.

[21]  Christopher Small,et al.  Why does file system prefetching work? , 1999, USENIX Annual Technical Conference, General Track.

[22]  Carl Staelin,et al.  The HP AutoRAID hierarchical storage system , 1995, SOSP.

[23]  Margo I. Seltzer,et al.  Journaling Versus Soft Updates: Asynchronous Meta-data Protection in File Systems , 2000, USENIX Annual Technical Conference, General Track.

[24]  M. Malik,et al.  Operating Systems , 1992, Lecture Notes in Computer Science.

[25]  Margo I. Seltzer,et al.  Berkeley DB , 1999, USENIX Annual Technical Conference, FREENIX Track.

[26]  Diane Tang,et al.  Benchmarking Filesystems , 1995 .

[27]  Michael Dahlin,et al.  Cooperative caching: using remote client memory to improve file system performance , 1994, OSDI '94.