“fio” Flexible IO Tester post series from installing to a deep dive explanation and usage.
full course- FIO (Flexible I/O Tester) Part1 – Installation and compiling if needed
- FIO (Flexible I/O Tester) Part2 – First run and defining job files
- FIO (Flexible I/O Tester) Part3 – Environment variables and keywords
- FIO (Flexible I/O Tester) Part4 – fixed, ranges or finer grained block sizes?
- FIO (Flexible I/O Tester) Part5 – Direct I/O or buffered (page cache) or raw performance?
- FIO (Flexible I/O Tester) Part6 – Sequential read and readahead
- FIO (Flexible I/O Tester) Part7 – Steady State of SSD,NVMe,PCIe Flash with TKperf
- FIO (Flexible I/O Tester) Part8 – Interpret and understand the result/output
- FIO (Flexible I/O Tester) Part9 – fio2gnuplot to visualize the output
FIO (Flexible I/O Tester) is a decent I/O test tool which is often used to test the performance of HDD/SSD and PCIe flash drives. But it can do much more. For example did you know that it provides an io-engine to test a CEPH rbd (RADOS block devices) without the need to use the kernel rbd driver?
I couldn’t find good documents which shows more interpretations and explanation of the results you receive from “fio”. Voilà, I will do it then. This little tiny tool is so complex that I am planing to split it in different parts.
But don’t forget: “fio is a synthetic testing (benchmarking) tool which in most cases doesn’t represent real world workloads”
Installation and compiling if needed (Ubuntu)
fio is developed by Jens Axboe and available at github.
These posts are based on Testverse and Ubuntu 14.04.2 but sources are available so you are able to compile it in your environment. Or the easier way is to use the binary packages available for these OSes:
- Debian
- Ubuntu
- Red Hat, CentOS & Co
- Mandriva -> “urpmi fio”
- Solaris
- Windows
1. Installing the fio binary in Ubuntu 14.04.2
1 2 |
sudo apt-get update sudo apt-get install fio |
and
1 |
fio |
list the help of the command.
that’s it…. or?
1 |
fio -v |
shows that
fio-2.1.3 is installed. The actual version available at github is 2.2.9 (30.07.2015) so lets have some fun with:
2. Compiling the newest fio version in Ubuntu 14.04.2
I am using git for the installation because I like git.
1 2 3 4 5 6 7 8 9 |
sudo apt-get update sudo apt-get install git git clone https://github.com/axboe/fio sudo apt-get install zlib1g-dev sudo apt-get install libaio1 libaio-dev cd fio ./configure sudo make sudo make install |
The ./configure showed that some features are using zlib-devel – so thats the reason why we install it. The packages libaio1 and libaio-dev are needed to use the ioengine libaio which ist often used to measure the raw performance of devices.
In other distributions you may need to install other packages like make, gcc, libaio etc. in advance.For Ubuntu the “build-essential” should work.
1 |
sudo apt-get install build-essential |
1 |
fio -v |
shows version 2.2.9-g669e
done.
Go hadoop.