Testing tools

From Linux NFS

(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by MtmG2i (Talk); changed back to last version by Bfields)
 
(19 intermediate revisions not shown)
Line 1: Line 1:
-
All this programs are provided under the GPL, excepted SpecSFS. This tools are mainly issued from two projects :
+
All this programs are provided under the GPL, except SpecSFS. This tools are mainly issued from two projects :
-
[http://lse.sf.net/ L.S.E]Linux Scalability Effort
+
*[http://lse.sf.net/ L.S.E]Linux Scalability Effort
-
[http://ltp.sf.net/L.T.P Linux Tests Projects]
+
*[http://ltp.sf.net/L.T.P Linux Tests Projects]
-
 
-
</tbody></table><table nosave="" border="1" width="85%">
+
= Overview =
-
<caption><a name="overview"></a></caption>
+
<center>
 +
<table nosave="" border="1" width="85%">
-
<tbody><tr nosave="" align="center" valign="CENTER">
+
 
 +
<tr nosave="" align="center" valign="CENTER">
<td nosave="" align="center" valign="CENTER"></td>
<td nosave="" align="center" valign="CENTER"></td>
Line 30: Line 31:
<tr>
<tr>
<td>
<td>
-
<center>[[#Bonnie|Bonnie++]]</center>
+
[[#Bonnie|Bonnie++]]
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
-
<td>
+
<td>IPv4/IPv6
-
<center>IPv4/IPv6</center>
+
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes
-
 
+
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
-
<td><a href="#FFSB">FFSB</a></td>
+
<td>[[#FFSB|FFSB]]</td>
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes
-
 
+
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4</td>
-
</td>
+
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
<tr>
<tr>
-
<td>[[#DBench|NetBench]]</a></td>
+
<td>[[#DBench|NetBench]]</td>
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
<tr>
<tr>
-
<td>[[#DBench|DBench]]</a></td>
+
<td>[[#DBench|DBench]]</td>
<td>
<td>
-
<center>yes</center>
+
yes
-
 
+
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no
-
 
+
</td>
</td>
</tr>
</tr>
Line 183: Line 162:
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no
-
 
+
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
Line 224: Line 198:
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
Line 257: Line 226:
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes
-
 
+
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
<td>
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
Line 295: Line 258:
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
<td>
<td>
-
<center>v3</center>
+
v3</td>
-
</td>
+
<td>
<td>
-
<center>IPv4</center>
+
IPv4
</td>
</td>
<td>
<td>
-
<center>no</center>
+
no
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
</tr>
</tr>
<tr>
<tr>
-
<td style="vertical-align: top;"><a href="#NFSx">(N)FSx</a></td>
+
<td>[[#NFSx|(N)FSx]]</td>
<td>
<td>
-
<center>yes</center>
+
yes
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no
-
 
+
</td>
</td>
</tr>
</tr>
<tr>
<tr>
-
<td style="vertical-align: top;"><a href="#Mongo">Mongo</a></td>
+
<td>[[#Mongo|Mongo]]</td>
<td>
<td>
-
<center>???</center>
+
???</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no
-
 
+
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
</tr>
</tr>
<tr>
<tr>
-
<td style="vertical-align: top;">[[#PyNFS|PyNFS]]</td>
+
<td>[[#Newpynfs|Newpynfs]]</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
 
+
-
<td style="vertical-align: top; text-align: center;">
+
-
<center>v4</center>
+
 +
<td>
 +
v4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4</center>
+
IPv4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
</tr>
</tr>
<tr>
<tr>
-
<td style="vertical-align: top;">[[#Connectathon|connectathon]]</td>
+
<td>[[#Connectathon|Connectathon]]</td>
<td>
<td>
-
<center>no</center>
+
no
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no
-
 
+
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>v4</center>
+
v4</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4</center>
+
IPv4</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>-</center>
+
-
</td>
</td>
</tr>
</tr>
Line 479: Line 416:
<tr>
<tr>
-
<td style="vertical-align: top;">[[#OpenPOSIX|OpenPOSIX]]</td>
+
<td>[[#OpenPOSIX|OpenPOSIX]]</td>
<td>
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>partial</center>
+
partial
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
 
+
no
-
<center>no</center>
+
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no
</td>
</td>
</tr>
</tr>
<tr>
<tr>
-
<td style="vertical-align: top;">[[#PostMark|PostMark]]</td>
+
<td>[[#PostMark|PostMark]]</td>
<td>
<td>
-
<center>???</center>
+
???
-
 
+
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>v3/v4</center>
+
v3/v4
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>IPv4/IPv6</center>
+
IPv4/IPv6
</td>
</td>
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>no</center>
+
no</td>
-
</td>
+
-
<td style="vertical-align: top; text-align: center;">
+
<td>
-
<center>yes</center>
+
yes</td>
-
</td>
+
-
 
+
-
<td style="vertical-align: top; text-align: center;">
+
-
<center>no</center>
+
 +
<td>
 +
no
</td>
</td>
</tr>
</tr>
-
</tbody></table>
+
</table>
 +
</center>
''Nota : All tests are interoperability evaluation capable, by testing all NFSv4 clients/servers combinations. To support NFSv4 and IPv6 the SpecSFS tool must be updated. According to a first sizing, 11 month may be necessary.
''Nota : All tests are interoperability evaluation capable, by testing all NFSv4 clients/servers combinations. To support NFSv4 and IPv6 the SpecSFS tool must be updated. According to a first sizing, 11 month may be necessary.
''
''
 +
= Description =
=='''[http://www.coker.com.au/bonnie++/ Bonnie]'''==
=='''[http://www.coker.com.au/bonnie++/ Bonnie]'''==
A classical performances evaluation tool tests. The main program tests database type access to a single file (or a set of files if you wish to test more than 1G of storage), and it tests creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format email.
A classical performances evaluation tool tests. The main program tests database type access to a single file (or a set of files if you wish to test more than 1G of storage), and it tests creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format email.
-
=='''[http://samba.org/ftp/tridge/dbench/ DBench]'''
+
 
-
Dbench was written to allow independents developers to debug and test SAMBA.
+
'''Relevance to NFS:''':  [[Performance testing]], workload
 +
 
 +
=='''[http://samba.org/ftp/tridge/dbench/ DBench]'''==
 +
Dbench was written to allow independent developers to debug and test SAMBA.
It is heavily inspired of the original SAMBA tool : [http://lse.sourceforge.net/benchmarks/netbench/ NetBench]
It is heavily inspired of the original SAMBA tool : [http://lse.sourceforge.net/benchmarks/netbench/ NetBench]
Line 567: Line 500:
*improve the network load independently of the disk IO
*improve the network load independently of the disk IO
*Measure performances
*Measure performances
-
But it does not need as many hardware resources as NetBench to run.
+
But it does not need as much hardware resources as NetBench to run.
 +
 
 +
'''Relevance to NFS:''':
 +
 
 +
-Animesh Choudhury ,
 +
9986007415 .
 +
Datalifecycle.com Pvt. Ltd.
=='''[http://www.iozone.org/ IOZone]'''==
=='''[http://www.iozone.org/ IOZone]'''==
-
Performances tests suites. POSIX and 64 bits compliant. This tests is the file system test from the L.S.E. Main features
+
Performance tests suite. POSIX and 64 bits compliant. This tests is the file system test from the L.S.E. Main features
-
*POSIX async I/O, Mmap() file I/O, Normal file I/O
+
* POSIX async I/O, Mmap() file I/O, Normal file I/O
-
*Single stream measurement, Multiple stream measurement, Distributed
+
* Single stream measurement, Multiple stream measurement, Distributed file server measurements (Cluster)
-
file server measurements (Cluster)
+
* POSIX pthreads, Multi-process measurement
-
*POSIX pthreads, Multi-process measurement
+
* Selectable measurements with fsync, O_SYNC
-
*Selectable measurements with fsync, O_SYNC
+
* Latency plots
-
*Latency plots
+
 
 +
'''Relevance to NFS:''':  [[Performance testing]].  Good for exercising a given mount point under various load conditions.
=='''[http://weather.ou.edu/%7Eapw/projects/ Stress]'''==
=='''[http://weather.ou.edu/%7Eapw/projects/ Stress]'''==
This tool allow to set up a user specified amount of CPU, Disks IO, RAM and HDD load, and then to launch the test suite. Any error is detected and reported. It may be used to evaluate how well their systems will scale, by kernel programmers to evaluate perceived performance characteristics, and by systems programmers to expose the classes of bugs which only or more frequently manifest themselves when the system is under heavy load.
This tool allow to set up a user specified amount of CPU, Disks IO, RAM and HDD load, and then to launch the test suite. Any error is detected and reported. It may be used to evaluate how well their systems will scale, by kernel programmers to evaluate perceived performance characteristics, and by systems programmers to expose the classes of bugs which only or more frequently manifest themselves when the system is under heavy load.
 +
 +
'''Relevance to NFS:''':
=='''[http://www.cs.duke.edu/ari/fstress/ Fstress]'''==
=='''[http://www.cs.duke.edu/ari/fstress/ Fstress]'''==
-
A very flexible tool designed to evaluate NFS performances. fstress exports control over several dimensions in both data set and workload, enabling a wide range of tests for fundamental evaluation of file service scalability,
+
A very flexible tool designed to evaluate NFS performance. fstress exports control over several dimensions in both data set and workload, enabling a wide range of tests for fundamental evaluation of file service scalability,
sizing, configuration, and other factors.
sizing, configuration, and other factors.
Fstress includes several important "canned" workloads.
Fstress includes several important "canned" workloads.
-
=='''[http://www.spec.org/benchmarks.html#nfs Spec SFS]'''==
+
'''Relevance to NFS:''':  [[Robustness testing]], [[Performance testing]]
 +
 
 +
=='''[http://www.spec.org/benchmarks.html#nfs SpecSFS]'''==
This tool is an industry standard designed to test a NFS server by emulating the NFS client and verifying the correctness of the result. Since the low level protocol is verified, the tool is protocol dependent and must be
This tool is an industry standard designed to test a NFS server by emulating the NFS client and verifying the correctness of the result. Since the low level protocol is verified, the tool is protocol dependent and must be
adapted to the NFSv4 and IPv6 support.
adapted to the NFSv4 and IPv6 support.
Dbench, fstress and SpecSFS are directly designed and used to test networks file systems
Dbench, fstress and SpecSFS are directly designed and used to test networks file systems
 +
 +
'''Relevance to NFS:''':  Does not support NFSv4 capabilities; probably of limited use to NFSv4 testing.
=='''[http://ltp.sf.net/ OpenPOSIX]'''==
=='''[http://ltp.sf.net/ OpenPOSIX]'''==
OpenPOSIX is a tool designed to test the POSIX conformance. Currently, the test allow to test pthread, timers and ipc related functions. However, a few filesystems functions can be tested (open, close).
OpenPOSIX is a tool designed to test the POSIX conformance. Currently, the test allow to test pthread, timers and ipc related functions. However, a few filesystems functions can be tested (open, close).
-
=='''[http://www.nfsv4.org/ NFSv4 IETF project/connectathon]'''==
+
'''Relevance to NFS:'''
-
This test suite is the official suite of the connectathon to test clients/servers interoperability.
+
-
=='''[http://www.citi.umich.edu/projects/nfsv4/pynfs/ PyNFS]'''==
+
=='''[http://www.nfsv4.org/ Connectathon]'''==
-
PyNFS is the tool used to debug the Linux NFSv4 server. It maybe adapted to verify the RFC compliance.
+
This test suite from the NFSv4 IETF project is the official suite of the connectathon to test clients/servers interoperability.
 +
 
 +
'''Relevance to NFS:''':  [[Functionality testing]], [[Interoperability testing]].  Standard NFS test.  Needs updating to incorporate NFSv4 features, but still good for regression checking.
 +
 
 +
=='''[http://www.citi.umich.edu/projects/nfsv4/pynfs/ Newpynfs]'''==
 +
Newpynfs is rewritten from PyNFS, which is a useful test tool used to debug the Linux NFSv4 server. It maybe adapted to verify the RFC compliance.
 +
 
 +
'''Relevance to NFS:''':  [[Functionality testing]].  Includes NFSv4 specific features.  Good for regression checking.
=='''[http://www.namesys.com/benchmarks/mongo_readme.html Mongo]'''==
=='''[http://www.namesys.com/benchmarks/mongo_readme.html Mongo]'''==
Mongo is the filesystem suite from the Reiser4 filesystem project. It is a set of the programs to test linux filesystems for performance and functionality. The main program is mongo.pl script which creates the set of statistics for the file system variations specified by special mongo options. The mongo_parser.pl script parses those statistics and creates for them comparative html-table.
Mongo is the filesystem suite from the Reiser4 filesystem project. It is a set of the programs to test linux filesystems for performance and functionality. The main program is mongo.pl script which creates the set of statistics for the file system variations specified by special mongo options. The mongo_parser.pl script parses those statistics and creates for them comparative html-table.
 +
 +
'''Relevance to NFS:''':
=='''[http://www.netapp.com/tech_library/3022.html PostMark]'''==
=='''[http://www.netapp.com/tech_library/3022.html PostMark]'''==
Line 614: Line 568:
*Read file or Append file
*Read file or Append file
-
=='''[http://sourceforge.net/projects/ffsb/ Flexible File System Benchmark]'''==
+
'''Relevance to NFS:''':
 +
 
 +
=='''[http://sourceforge.net/projects/ffsb/ FFSB]'''==
The Flexible Filesystem Benchmark (FFSB) is a cross-platform filesystem performance measurement tool. It uses customizable profiles to measure of different workloads, and it supports multiple groups of threads across multiple filesystems. Depending on the profile It can be used for robustness and stress testing as well as performances testing.
The Flexible Filesystem Benchmark (FFSB) is a cross-platform filesystem performance measurement tool. It uses customizable profiles to measure of different workloads, and it supports multiple groups of threads across multiple filesystems. Depending on the profile It can be used for robustness and stress testing as well as performances testing.
-
=='''[http://ltp.sf.net/ (N)FSx]'''==
+
'''Relevance to NFS:''':  [[Performance testing]] and [[Robustness_testing|robustness testing]], depending on the profile used.  Serves similar role as Iozone and fsstress with different workloads.
-
NFSx is the nfs vrsion of fsx. That is the fs torture suite used by the [http://ltp.sf.net/ LTP] to test the linux filesystem robustness. Initialisations scripts from the ltp are yet modified to support the NFSv4 style syntax.
+
 
 +
=='''[http://ltp.sf.net/ NFSx]'''==
 +
NFSx is the nfs version of fsx. That is the fs torture suite used by the [http://ltp.sf.net/ LTP] to test the linux filesystem robustness. Initialisations scripts from the ltp are yet modified to support the NFSv4 style syntax.
 +
 
 +
'''Relevance to NFS:''':  [[Robustness testing]]

Latest revision as of 02:28, 19 August 2007

All this programs are provided under the GPL, except SpecSFS. This tools are mainly issued from two projects :


Contents

Overview

</tr>
Non Reg capability Performance evaluation Robustness evaluation NFSv3/v4 support IPv4/IPv6 POSIX conformance Interoperability evaluation RFC 3530 conformance

Bonnie++

yes

yes

no

v3/v4

IPv4/IPv6 no

yes

no
FFSB yes

yes

yes v3/v4

IPv4/IPv6

no yes no
NetBench yes yes yes

v3/v4

IPv4/IPv6

no

yes

no
DBench

yes

yes yes

v3/v4

IPv4/IPv6

no yes

no

IOZone yes yes no

v3/v4

IPv4/IPv6

no

yes

no
Stress
???
no yes

v3/v4

IPv4/IPv6

no yes no
fstress yes

yes

yes

v3/v4

IPv4/IPv6

no yes no
SpecSFS no yes no v3

IPv4

no

yes

yes

(N)FSx

yes

no yes

v3/v4

IPv4/IPv6

no

yes

no

Mongo ??? yes no

v3/v4

IPv4/IPv6

no

yes no
Newpynfs no no yes

v4

IPv4

no no yes
Connectathon

no

no

no v4 IPv4 no yes

-

OpenPOSIX no no no

v3/v4

IPv4/IPv6

partial

no

no

PostMark

???

yes

yes

v3/v4

IPv4/IPv6

no yes

no

Nota : All tests are interoperability evaluation capable, by testing all NFSv4 clients/servers combinations. To support NFSv4 and IPv6 the SpecSFS tool must be updated. According to a first sizing, 11 month may be necessary.

Description

Bonnie

A classical performances evaluation tool tests. The main program tests database type access to a single file (or a set of files if you wish to test more than 1G of storage), and it tests creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format email.

Relevance to NFS:: Performance testing, workload

DBench

Dbench was written to allow independent developers to debug and test SAMBA. It is heavily inspired of the original SAMBA tool : NetBench

As NetBench it allow to:

  • torture the file system
  • improve the network load independently of the disk IO
  • Measure performances

But it does not need as much hardware resources as NetBench to run.

Relevance to NFS::

-Animesh Choudhury , 9986007415 . Datalifecycle.com Pvt. Ltd.

IOZone

Performance tests suite. POSIX and 64 bits compliant. This tests is the file system test from the L.S.E. Main features

  • POSIX async I/O, Mmap() file I/O, Normal file I/O
  • Single stream measurement, Multiple stream measurement, Distributed file server measurements (Cluster)
  • POSIX pthreads, Multi-process measurement
  • Selectable measurements with fsync, O_SYNC
  • Latency plots

Relevance to NFS:: Performance testing. Good for exercising a given mount point under various load conditions.

Stress

This tool allow to set up a user specified amount of CPU, Disks IO, RAM and HDD load, and then to launch the test suite. Any error is detected and reported. It may be used to evaluate how well their systems will scale, by kernel programmers to evaluate perceived performance characteristics, and by systems programmers to expose the classes of bugs which only or more frequently manifest themselves when the system is under heavy load.

Relevance to NFS::

Fstress

A very flexible tool designed to evaluate NFS performance. fstress exports control over several dimensions in both data set and workload, enabling a wide range of tests for fundamental evaluation of file service scalability, sizing, configuration, and other factors.

Fstress includes several important "canned" workloads.

Relevance to NFS:: Robustness testing, Performance testing

SpecSFS

This tool is an industry standard designed to test a NFS server by emulating the NFS client and verifying the correctness of the result. Since the low level protocol is verified, the tool is protocol dependent and must be adapted to the NFSv4 and IPv6 support.

Dbench, fstress and SpecSFS are directly designed and used to test networks file systems

Relevance to NFS:: Does not support NFSv4 capabilities; probably of limited use to NFSv4 testing.

OpenPOSIX

OpenPOSIX is a tool designed to test the POSIX conformance. Currently, the test allow to test pthread, timers and ipc related functions. However, a few filesystems functions can be tested (open, close).

Relevance to NFS::

Connectathon

This test suite from the NFSv4 IETF project is the official suite of the connectathon to test clients/servers interoperability.

Relevance to NFS:: Functionality testing, Interoperability testing. Standard NFS test. Needs updating to incorporate NFSv4 features, but still good for regression checking.

Newpynfs

Newpynfs is rewritten from PyNFS, which is a useful test tool used to debug the Linux NFSv4 server. It maybe adapted to verify the RFC compliance.

Relevance to NFS:: Functionality testing. Includes NFSv4 specific features. Good for regression checking.

Mongo

Mongo is the filesystem suite from the Reiser4 filesystem project. It is a set of the programs to test linux filesystems for performance and functionality. The main program is mongo.pl script which creates the set of statistics for the file system variations specified by special mongo options. The mongo_parser.pl script parses those statistics and creates for them comparative html-table.

Relevance to NFS::

PostMark

PostMark was designed to create a large pool of continually changing files and to measure the transaction rates for a workload approximating a large Internet electronic mail server. It generates an initial pool of random text files ranging in size from a configurable low bound to a configurable high bound. This file pool is of configurable size and can be located on any accessible file system. Once the pool has been created (also producing statistics on continuous small file creation performance), a specified number of transactions occurs. Each transaction consists of a pair of smaller transactions:

  • Create file or Delete file
  • Read file or Append file
Relevance to NFS::

FFSB

The Flexible Filesystem Benchmark (FFSB) is a cross-platform filesystem performance measurement tool. It uses customizable profiles to measure of different workloads, and it supports multiple groups of threads across multiple filesystems. Depending on the profile It can be used for robustness and stress testing as well as performances testing.

Relevance to NFS:: Performance testing and robustness testing, depending on the profile used. Serves similar role as Iozone and fsstress with different workloads.

NFSx

NFSx is the nfs version of fsx. That is the fs torture suite used by the LTP to test the linux filesystem robustness. Initialisations scripts from the ltp are yet modified to support the NFSv4 style syntax.

Relevance to NFS:: Robustness testing

Personal tools