Day: December 2, 2020
Using FIO to measure IO Performance
FIO is a tool for measuring IO performance. You can use FIO to run a user-defined workload and collect the associated performance data.
A good writeup can be found at Fio Basics. For more information, do MAN on fio
Step 1: To Install fio, make sure you activated the epel repository.
# yum install fio
Parameters to be used.
% fio --filename=myfio --size=5GB --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
- –filename
An entire block size or filename can be specified. For example if you are testing block size filename=/dev/sda:/dev/sdb - –size
Indicate the size of the test file generated. If you are testing the block size and did not specify the size, the entire block will be used. - –direct=1
This means that the page cache is bypassed. No memory is used. - –rw
Check whether IO is access sequentially or randonly. There are a few options.
read – Sequential reading
write – Sequential Write
randread – random reading
randwrite – random writing
readwrite , rw – Mixed, sequential workload
randrw – Mixed Random Workload - –bs
Block Size. By default 4kB is used. - –ioengine=libiao
libaio enables asynchronous access from the application level. The option would requires –direct=1 - –iodepth
Refers to how many requests. - –numjobs
Specifies the number of processes that start the jobs in parallel - –runtime
Terminate processing after the specified period of time - –name
Name of the job - –time-based
fio will run for the duration of the runtime specified - –group_reporting
Display statistics for groups of jobs as a whole instead of for each individual job. This is especially true if
numjobs is used;