Rate This Document
Findability
Accuracy
Completeness
Readability

fio

fio is an open-source I/O pressure test tool used to test the storage I/O performance. It supports multiple engines. In this document, the RBD engine is used as an example. fio supports flexible configurations and concurrent tests on multiple clients (server and client modes).

Table 1 describes the fio parameters.

Table 1 fio parameters

Parameter

Description

ioengine

I/O engine

fio supports the following engines: cpuio, mmap, sync, psync, vsync, pvsync, pvsync2, null, net, netsplice, ftruncate, filecreate, libaio, posixaio, falloc, e4defrag, splice, rados, rbd, mtd, sg, io_uring

clientname

Ceph user

pool

Ceph storage pool

rbdname

Ceph RBD image name

direct

I/O type. The value 1 indicates non-buffered I/O, whereas the value 0 indicates buffered I/O.

rw

Read/Write type

  • rw=read: sequential read
  • rw=write: sequential write
  • rw=randread: random read
  • rw=randwrite: random write
  • rw=rw: sequential mixed read/write
  • rw=randrw: random mixed read/write

bs

I/O block size

size

Read/Write data volume

iodepth

Queue depth

numjobs

Number of job copies

runtime

fio execution time

time_based

Indicates whether fio runs for the duration specified by runtime even if the files have been completely read or written.

log_avg_msec

Log collection interval, in milliseconds

ramp_time

Running time required before any performance information is logged. This parameter ensures that the results are logged only after the performance is stable and minimizes the runtime required for stable results.

thread

By default, fio uses fork() to create jobs. If this option is enabled, fio uses pthread_create to create threads.

rwmixread

Read/write ratio in a mixed read/write test.

stonewall

Indicates whether to start a task only after the previous task is complete when a job file contains multiple test tasks.

fio is a stable test tool. For details about how to use fio and the parameters, see the user guide.