
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?
I was talking with one of our performance guru’s at Pure Storage, and he gave me the following advice.
The reason why “Real World” workloads are superior to simple synthetic workloads is that real-world workloads are far more complex.
For instance, some vendors look really good when you run simple synthetic load-generation scripts.
But, with real-world workloads they come up short.
Be the first to comment