Open Source

SGI NFS Test Tools

Introduction

This page contains a number of internal SGI testing and debugging tools for NFS. Some of these tools are also applicable to filesystems in general.

License

These tools are being released under the GNU General Public License (GPL) version 2, in the hope that the Linux filesystem development community may find them useful.

Support

These tools are provided as-is, without any support. Please do not contact SGI for support on any of these tools.

Some of these tools are unfinished. Others rely on build infrastructure in internal SGI trees which cannot be released. The tools are provided as tarball snapshots of internal SGI source control trees; for a number of technical reasons it is not possible to provide access to those trees or to create external repositories.

Checkstream

Simple data corruption testing utilities based on the concept of generating a stream of small self-contained records which can be decoded in a way which makes certain common data corruption modes automatically diagnosable. Has been useful for automated testing of NFS, XFS, and CXFS in SGI.

Download tarball: checkstream-oss-20090302.tar.bz2

Weber

Test load generator for NFS. Uses multiple threads, multiple sockets and multiple IP addresses to simulate loads from many machines, thus enabling testing of NFS server setups with larger client counts than can be tested with physical infrastructure (or Virtual Machine clients). Has been useful in automated NFS testing and as a pinpoint NFS load generator tool for performance development.

Download tarball: weber-oss-20090303.tar.bz2

NFS PMDA

PCP Data Agent for extended NFS server statistics. Exports to PCP the new statistics (measuring per-client and per-server performance) which are provided by SGI's EnhancedNFS kernel patches.

Download tarball: pmdanfs-oss-20090303.tar.bz2

Samba PMDA

PCP Data Agent for extended Samba server statistics. Exports to PCP the additional statistics (measuring per-client and per-server performance) which are provided by SGI's patches to Samba.

Download tarball: pmdasamba-oss-20090303.tar.bz2

Ddnfs

Filesystem load generation program designed to simulate the IO load placed on an XFS filesystem by the NFS server in response to certain NFS loads. Intended for use in XFS automated testing, to test performance and correctness of certain XFS functionality not otherwise exercised by the existing XFS test suite, but never integrated into XFSQA.

Download tarball: ddnfs-oss-20090302.tar.bz2

Cluster Mode TTCP

TTCP is the venerable Public Domain "Test TCP" tool used since the early 1980s by the Unix community. This version has been used for network testing by SGI's Melbourne group. It's based on the Irix version, which includes a number of minor bugfixes by SGI and other authors. It also includes a Cluster Mode feature added by SGI, which is useful for synchronised testing of aggregate bandwidth between one server machine and multiple client machines. This is a common scenario for cluster testing and has been used in SGI for performance testing of NFS servers for ICE clusters.

Download tarball: ttcp-oss-20090303.tar.bz2

Pmapload

Test suite for the portmap and rpcbind programs (which are NFS infrastructure components based on code open-sourced by Sun Microsystems and used by every Unix and Linux). Developed by SGI to test changes imported into those programs from newer Sun source code during the NFS on IPv6 work for Irix several years ago.

Download tarball: pmapload-oss-20090312.tar.bz2

RPC Exerciser

Test suite for the userspace RPC infrastructure libraries, (which are NFS infrastructure components based on code open-sourced by Sun Microsystems and used by every Unix and Linux). Developed by SGI to test changes imported into those libraries from newer Sun source code during the NFS on IPv6 work for Irix several years ago.

Download tarball: rpc-exerciser-oss-20090312.tar.bz2

Testfs

Linux kernel module which provides an in-memory filesystem which forgets all data written to it. Also can be configured to simulate timing behaviour on reads and writes. This is useful for NFS performance testing without a fast disk subsystem.

Download tarball: testfs.patch

StReplay

Program which reads the system call trace of another program (obtained using the widely available strace utility) and replays the IO pattern. This was intended to be used for automated NFS and XFS testing and for NFS and XFS problem diagnosis, but was never completed as the author transferred to another team. Could be the basis for a very useful filesystem test tool.

Download tarball: streplay-oss-20090303.tar.bz2