NAME

ioperf - IO Performance tester program


SYNOPSIS

Syntax : Ioperf [options]


DESCRIPTION

ioperf is a IO performance tester I have developped in the spirit of being ``minimal'' (i.e. it uses functions implemented on about all operating system) but still does the job. Several IO tests are performed as describe in the Basics section.


Options

   -f OutputFileName (default is ioperf.dat_$pid)
   -b BlocksPerIO    (default 512)
   -n NumIO          (default 10000)
   -l Loops          (default 1)
   -s Nseek          (default 50)
   -m machine_label  (default "")
   -w                print HTML table wrappers
   -html             output lines in html


Basics

Refer to the Options sections for an overview of the parameters name and switch you can use to modify the default values.

The fwrite method writes a buffer of BlocksPerIO size times the size of a double. NumIO such blocks are written to the OutputFileName. fread does the same and can be used to compare buffered read/write operations.

The putc and getc method writes as many KB but this time, operations are done character per character. This is a good test of low-level IO performance.

seek method is a random seek access of a file of size BlocksPerIO*NumIO. Only Nseek times NumIO access will be done (because covering the entire file may be very long). You can change this by using the -s option.

Each test may be repeated Loops time, each consecutive line given in this mode represents the grand average of the preceding lines and a new test. The numbers should then converge to stable values. It is advisable to use the -l options to increase the number of loops in order to avoid having the results tainted by your machine load fluctuation.

ioperf output all results to the stdandard output. Any other messages are directed to the standard error channel so you may redirect the output to a file.

For each test, we give the Real and CPU time taken for the operation. This gives us a %CPU ratio and two output rate. You should consider the Real rate as what you will be able to in normal condition while the CPU rate is what you will be able to do in optimila conditions (i.e. your system is busy doing IO only). We kept the two numbers since they are both informative .

Finally, ioperf has the hability to output the results in HTML format. Use the -html option to do so and/or the -w option to have the table header as well. However, the output is more detailed in regular mode : only rates and %CPU given in html while the non-html output gives you the time spent as well.


Caveat

Because most Operating systems uses buffering, you may get a rate greater than the expected maximum IO rate. It may happen in fread and getc mode because they do occur immediatly after the fwrite and putc tests. This will be fixed later.


Tested Platforms

I have compiled and tested this program under the following Operating Systems :

 Alpha OpenVMS 6.2 and 7.2
 VAX OpenVMS 6.2        
 Alpha Digital Unix 4.0d to 4.0f
 RedHat Linux 6.1


Copyright

This software is distributed under the GPL license.

(c) Jerome LAURET jlauret@mail.chem.sunysb.edu