Testing tools

From Linux NFS

Revision as of 10:46, 18 May 2005 by Vincent (Talk | contribs)
Jump to: navigation, search

All this programs are provided under the GPL, excepted SpecSFS. This tools are mainly issued from two projects : L.S.ELinux Scalability Effort Linux Tests Projects


Contents

Overview

<tbody><tr nosave="" align="center" valign="CENTER"> <td nosave="" align="center" valign="CENTER"></td>

<td>Non Reg capability</td>

<td nosave="" align="center" valign="CENTER">Performance evaluation</td>

<td>Robustness evaluation</td>

<td>NFSv3/v4 support</td>

<td>IPv4/IPv6</td>

<td>POSIX conformance</td>

<td>Interoperability evaluation</td>

<td>RFC 3530 conformance</td> </tr>

<tr> <td>

Bonnie++

</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

no

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr> <td>FFSB</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr>

<td>NetBench</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr> <td>DBench</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr> <td>IOZone</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

no

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr> <td>Stress</td>

<td>

???

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr> <td>fstress</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

yes

</td>

<td>

v3/v4

</td>

<td>

IPv4/IPv6

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td> </tr>

<tr>

<td>SpecSFS</td>

<td>

no

</td>

<td>

yes

</td>

<td>

no

</td>

<td>

v3

</td>

<td>

IPv4

</td>

<td>

no

</td>

<td>

yes

</td>

<td>

yes

</td> </tr>

<tr> <td style="vertical-align: top;">(N)FSx</td>

<td>

yes

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

v3/v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4/IPv6

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

no

</td> </tr>

<tr> <td style="vertical-align: top;">Mongo</td>

<td>

???

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

v3/v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4/IPv6

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

no

</td> </tr>

<tr> <td style="vertical-align: top;">PyNFS</td>

<td>

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td> </tr>

<tr> <td style="vertical-align: top;">connectathon</td>

<td>

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

-

</td> </tr>

<tr>

<td style="vertical-align: top;">OpenPOSIX</td>

<td>

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

v3/v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4/IPv6

</td>

<td style="vertical-align: top; text-align: center;">

partial

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

no

</td> </tr>

<tr> <td style="vertical-align: top;">PostMark</td>

<td>

???

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

v3/v4

</td>

<td style="vertical-align: top; text-align: center;">

IPv4/IPv6

</td>

<td style="vertical-align: top; text-align: center;">

no

</td>

<td style="vertical-align: top; text-align: center;">

yes

</td>

<td style="vertical-align: top; text-align: center;">

no

</td> </tr> </tbody></table>

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.

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. ==DBench Dbench was written to allow independents 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 many hardware resources as NetBench to run.

IOZone

Performances tests suites. 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

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.

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, sizing, configuration, and other factors.

Fstress includes several important "canned" workloads.

Spec SFS

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

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).

NFSv4 IETF project/connectathon

This test suite is the official suite of the connectathon to test clients/servers interoperability.

PyNFS

PyNFS is the tool used to debug the Linux NFSv4 server. It maybe adapted to verify the RFC compliance.

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.

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

Flexible File System Benchmark

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.

(N)FSx

NFSx is the nfs vrsion 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.

Personal tools