25 lines
1.4 KiB
Text
25 lines
1.4 KiB
Text
Bonnie: A simple Filesystem Benchmark Program
|
|
|
|
Bonnie tests the speed of sequential file I/O using standard C library
|
|
calls. It does reads and writes of characters using STDIO; and of
|
|
blocks using system calls. Then it does a sequential pass of reading
|
|
every block, modifying one byte, and writing it back; and finally it
|
|
does random seeks followed by reads and writes of blocks. It reports
|
|
the average sustained data rate (usually limited by the drive or
|
|
controller). It is quite dependent on hardware and OS optimisations.
|
|
|
|
The per character read and write tests are generally limited by CPU
|
|
speed except on the fastest of systems. It takes some 35 SPECint92 to
|
|
read or write a file at a rate of 1MB/s using getc() and putc().
|
|
|
|
The input tests, particularly the block reads, are highly dependent on
|
|
the buffer cache size. A file size of at least four times available RAM
|
|
is needed to effectivley mask the effects of the buffer cache.
|
|
|
|
The seek tests are also dependent on the buffer cache size, since the
|
|
fraction of disk blocks which fit into the buffer cache will be found
|
|
without any actual disk access and will contribute little or no apparent
|
|
seek time to the mesurements. I.e. if the buffer cache is 16MB and the
|
|
Bonnie test file is 32MB in size, then the seek time will come out as
|
|
about half its real value. The seek time includes rotational delay, and
|
|
will thus always come out higher than the specified value for a drive.
|