Performance Test of Filesystem I/O
tests the speed of file I/O from
standard C library calls. It reads and writes 8KB blocks to find the maximum
sustained data rate (usually limited by the drive or controller) and
additionally rewrites the file (better simulating normal operating conditions
and quite dependent on drive and OS optimisations).
The per character read and write tests are generally limited by CPU speed only
on current generation hardware. It takes some 35 SPECint92 to read or write a
file at a rate of 1MB/s using getc() and putc().
The seek test results depend on the buffer cache size, since the fraction of
disk blocks that fits into the buffer cache will be found without any disk
operation and will contribute zero seek time samples. (See
- Specify the directory where the test file gets written. The default is the
current directory. Make sure there is sufficient free space available on
the partition this directory resides in.
- Specify the size of the test file in MByte. This much space must be
available for the tests to complete.
- Specify a label to be written in the first column of the result
was written by Tim Bray
tries hard to measure disk performance
and not the quality of the buffer cache implementation. In merged buffer
caches common today, the buffer cache size is often only limited by total RAM
on an otherwise unloaded system. Be sure to use a file at least twice at large
as available RAM to protect against artificially high results.
There is no way to keep the buffer cache from increasing the reported seek rate.
This is because the fraction of accesses corresponding to the amount of the
file cached, will be done without seeks. If your buffer cache is half the size
of the file used, then half the requests will be satisfied immediately, and
and the seek rate printed will be twice the actual value.