NFSometer
From Linux NFS
NFSometer is a performance measurement framework for running workloads and reporting results across NFS protocol versions, NFS options and Linux NFS client implementations.
The NFSometer project was started at NetApp by Weston Andros Adamson as a way to automate performance testing of the Linux NFS client. Since then it has grown to include many other features, notably the generation of reports. It is our hope that by releasing this project under the GPLv2 license, the Linux NFS community will benefit and hopefully contribute their own improvements to NFSometer.
Goals:
- Automate the time consuming process of running a variety of workloads looking for performance regressions between kernel versions, NFS protocol versions and NFS options.
- Generate reports that allows the user to understand the performance characteristics of workloads and easily compare performance characteristics of different configurations.
Contents |
News
- Thu Jun 21, 2012: NetApp is pleased to announce the GPLv2 release of NFSometer!
Download
Main git repository:
- git clone git://git.linux-nfs.org/projects/dros/nfsometer.git
- NFSometer gitweb
Releases:
- Thu Jun 21, 2012 : nfsometer-1.0.tgz
Contributions
Please send git formatted patches to dros@netapp.com and cc the Linux Kernel NFS mailing list: linux-nfs@vger.kernel.org.
Please send any bug reports, questions or comments to dros@netapp.com.
Example
The following command will run the Connectathon test suite once for each NFS protocol version (v3, v4.0, v4.1) and generate a report:
$ ./nfsometer.py zero:/export cthon Requested: 1 workloads X 3 nfsopts X 1 runs = 3 test runs Need to run 3 of 3 requested test runs cthon - needs 1 runs of vers=3 cthon - needs 1 runs of vers=4 cthon - needs 1 runs of vers=4,minorversion=1 Trace 1/3: 1/1 with workload: cthon, nfsopts: vers=3 < SETUP > Mounting: zero:/export... remove run directory: /mnt/nfsometer_runroot/cthon Unmounting: zero:/export... < RUN > Mounting: zero:/export... Running command: cd /home/dros/nfsometer/tests/cthon/cthon && NFSTESTDIR="/mnt/nfsometer_runroot/cthon" ./runtests -a Unmounting: zero:/export... Results copied to: nfsometer_trace-cthon-vers=3-0 Trace 2/3: 1/1 with workload: cthon, nfsopts: vers=4 < SETUP > Mounting: zero:/export... remove run directory: /mnt/nfsometer_runroot/cthon Unmounting: zero:/export... < RUN > Mounting: zero:/export... Running command: cd /home/dros/nfsometer/tests/cthon/cthon && NFSTESTDIR="/mnt/nfsometer_runroot/cthon" ./runtests -a Unmounting: zero:/export... Results copied to: nfsometer_trace-cthon-vers=4-0 Trace 3/3: 1/1 with workload: cthon, nfsopts: vers=4,minorversion=1 < SETUP > Mounting: zero:/export... remove run directory: /mnt/nfsometer_runroot/cthon Unmounting: zero:/export... < RUN > Mounting: zero:/export... Running command: cd /home/dros/nfsometer/tests/cthon/cthon && NFSTESTDIR="/mnt/nfsometer_runroot/cthon" ./runtests -a Unmounting: zero:/export... Results copied to: nfsometer_trace-cthon-vers=4,minorversion=1-0 Successfully ran 3 traces! Generating reports: Saved: index.html Saved: Report_Averages.html graph summary: 47 generated, 0 cached, 0 mismatch, 0 pruned, 0 hash files and 0 other files deleted Report index: /home/dros/nfsometer/results/index.html