IOZONE(1)

NAME
iozone - Performance Test of Sequential File I/O

SYNOPSIS
iozone [megabytes] [record_length_in_bytes] [[path]filename]
iozone auto[=filename]
iozone raw[=filename]
iozone cdrom[=filename]
iozone help

DESCRIPTION
Copyright 1991, 1992, 1994 William D. Norcott

License to freely use and distribute this software is hereby granted by the author, subject to the condition that this copyright notice remains intact. The author retains the exclusive right to publish derivative works based on this work, including, but not limited to, revised versions of this work

This test writes a X MEGABYTE sequential file in Y byte chunks, then rewinds it and reads it back. [The size of the file should be big enough to factor out the effect of any disk cache.]. Finally, IOZONE deletes the temporary file

The file is written (filling any cache buffers), and then read. If the cache is >= X MB, then most if not all the reads will be satisfied from the cache. However, if it is less than or equal to .5X MB, then NONE of the reads will be satisfied from the cache. This is becase after the file is written, a .5X MB cache will contain the upper .5 MB of the test file, but we will start reading from the beginning of the file (data which is no longer in the cache)

In order for this to be a fair test, the length of the test file must be AT LEAST 2X the amount of disk cache memory for your system. If not, you are really testing the speed at which your CPU can read blocks out of the cache (not a fair test)

IOZONE does not normally test the raw I/O speed of your disk or system. It tests the speed of sequential I/O to actual files. Therefore, this measurement factors in the efficiency of you machines file system, operating system, C compiler, and C runtime library. It produces a measurement which is the number of bytes per second that your system can read or write to a file.

You use IOZONE to test the I/O speed of a UNIX 'RAW DEVICE' such as a tape drive, hard disk drive, floppy disk drive, etc. To do this, you must define the symbol NO_DELETE when you compile IOZONE. If you fail to define NO_DELETE, IOZONE will treat the raw device as a temporary file, and WILL DELETE THE RAW DEVICE after the test completes! When testing raw devices, any UNIX buffer caching is bypassed. IOZONE still is using the read()/write() system calls, so you are not quite testing the device at the low level of say, disk controller diagnostics. On the other hand, that kind of testing is highly system- and device- specific, and my goal for IOZONE has been to build a highly portable benchmark -- not one which is tied to a particular operating system or hardware configuration. In practice, I have tested raw disk and tape peripherals and the results are very close to the manufacturer's specs for those devices.

AUTHOR
Bill Norcott