IOzone

From Leo's Notes
Last edited on 30 December 2021, at 01:17.

IOzone is a filesystem benchmark that can test read and write performance. It supports both sequential and random IO.

Usage

Refer to these commonly used options or skip to the examples below.

All size values can be given with units k, m, or g, etc. Eg. 128k, 512m
Option Description
-a automatic mode. Tests in record sizes 4K to 16M and file sizes 64K to 512M
-g size maximum file size. Useful to test IO without memory caching interfering.
-n size minimum file size (64K default)
-s size specific size (overrides -g and -n)
-S size specify cache size
-r size record size
-w do not delete temporary files, useful for read tests
-e ensure flush time is included in calculations
-i Specifies the test to run. Most commonly used tests are 0 (write), 1 (read), 2 (random).

You can specify more than one test to run by calling with multiple -i options.

  0. write/rewrite (sequential)
  1. read/reread (sequential)
  2. random-read/write (random I/O)
  3. read-backwards (sequential)
  4. rewrite record
  5. stride read
  6. fwrite/re-fwrite
  7. fread/re-fread
  8. random mix
  9. pwrite/re-pwrite
  10. pread/re-pread
  11. pwritev/re-pwritev
  12. preadv/re-preadv
-R exports a report in csv format
-t Number of threads to run; to test throughput.

Examples

## Testing read/write on a 1GB file with 32 threads. Use 16K record sizes
$ iozone -i 0 -i 1 -s 1g -r 16k -t 32

## Write test. 256K cache with 64K record size. Write a 128MB file, which we do not delete
$ iozone -i 0 -S 256k -r 64k -s 128m -w -e

## Random read/write tests
$ iozone -i 2 -S 256k -r 64k -s 128m -w -e