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