FIO参数 说明

direct 定义是否使用direct IO,可选值如下:

    值为0,表示使用buffered IO

    值为1,表示使用direct IO

iodepth 定义测试时的IO队列深度,默认为1。

    此处定义的队列深度是指每个线程的队列深度,如果有多个线程测试,意味着每个线程都是此处定义的队列深度。fio总的IO并发数=iodepth * numjobs。

rw   定义测试时的读写策略,可选值如下:

    随机读:randread  随机写:randwrite

    顺序读:read  顺序写:write

    混合随机读写:randrw

    顺序trim/随机trim:trim/randtrim(Linux block devices and SCSI character devices only)

    trim+写: trimwrite/randtrimwrite

ioengine    定义fio如何下发IO请求,通常有同步IO和异步IO:

    同步IO一次只能发出一个IO请求,等待内核完成后才返回。这样对于单个线程IO队列深度总是小于1,但是可以透过多个线程并发执行来解决。多个线程同时工作可把IO队列深度塞满。

    异步IO则通常使用libaio这样的方式一次提交一批IO请求,然后等待一批的完成,减少交互的次数,会更有效率。

bs   定义IO的块大小(block size),单位是k、K、m和M等,默认IO块大小为4 KB。

size  定义测试IO操作的数据量,若未指定runtime这类参数,fio会将指定大小的数据量全部读/写完成,然后才停止测试。

    该参数的值,可以是带单位的数字,比如size=10G,表示读/写的数据量为10GB;也可是百分数,比如size=20%,表示读/写的数据量占该设备总文件的20%的空间。

numjobs 定义测试的并发线程数。

runtime 定义测试时间。

    如果未配置,则持续将size指定的文件大小,以每次bs值为分块大小读/写完。

group_reporting 定义测试结果显示模式,group_reporting表示汇总每个进程的统计信息,而非以不同job汇总展示信息。

filename    定义测试文件(设备)的名称。

    此处选择文件,则代表测试文件系统的性能。例如:-filename=/opt/fiotest/fiotest.txt

    此处选择设备名称,则代表测试裸盘的性能。例:-filename=/dev/nvme0n1

    须知:

    如果在已经分区、并创建文件系统,且已写入数据的磁盘上进行性能测试,请注意filename选择指定文件,以避免覆盖文件系统和原有数据。

name  定义测试任务名称。

output  输出到指定文件

output-format  输出格式normal, terse, or json


Offset 参数: fio写入起始地址(字节)。默认为0