I want to go over some benchmark testing using FIO, these are just to demonstrate how FIO runs and not actual performance numbers.
First FIO – what is that? Flexible I/O Tester
- Link: https://fio.readthedocs.io/en/latest/fio_doc.html
- Link: https://buildmedia.readthedocs.org/media/pdf/fio/latest/fio.pdf
FIO spawns a number of threads or processes doing a particular type of I/O. There is plenty of documentation on how to install fio on your server. I have only seen this on Linux. (note: I haven’t found a good FIO client for Mac, if you find one, let me know!)
To install FIO on Ubuntu just run the following:
sudo apt-get update && sudo apt-get install fio -y
Getting right to the chase – how do I run FIO? You can run FIO in 2 ways.
- one big command – i.e. fio –option1 –option2 –option3
- fio file – you have a file with your options, this is preferred.
Here is the “one big command” this command is typically for trying to find random reads.
sudo fio --filename=device name --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Here is the same command in a job file. Create a file called randomread.fio.
[global]
bs=4K
iodepth=256
direct=1
ioengine=libaio
group_reporting
time_based
runtime=120
numjobs=4
name=raw-randread
rw=randread
[job1]
filename=device name
Here is how you run the job.
fio randomread.fio
FIO can run so many different I/O jobs and tests against a system, what’s your typical tests with FIO and why? Do you have any favorite links to share around FIO?
Be the first to comment