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

Usage[edit | edit source]

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[edit | edit source]

## 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