Playing with FIO — Flexible IO Tester

Raghav Bansal
2 min readFeb 14, 2021

Few days back I thought applying my technical knowledge to my day to day life, in my opinion it is the best way I can learn something more easily no matter how complex it is, than came an idea to test the performance of my own external SSD (solid state drive) with the help of Flexible IO Tester, with FIO one can define synthetic test workloads.

Without going into much details, I will focus into a simple sequential read test on a SSD.

First On my mac I checked all the memory devices that are connected to my mac, below one is the SSD drive that I will be playing with

FIO can be installed on mac as below : —

brew install fio

Performing the Sequential Read test

sudo fio — filename=/dev/disk2 — name=seqread — ioengine=posixaio — rw=read — bs=4k — numjobs=1 — size=4g — iodepth=1 — runtime=30 — time_based — end_fsync=1

Decoding the parameters

filename -> the name of the device on which I am running the test

name-> It is the name of the job, in our case sequential read

ioengine -> It tells how the I/O to the files are issued

rw -> read implies that we will be doing sequential read

numjobs-> We are creating one file and running a single process

size -> the size of out test file

runtime -> The time after which we want to terminate the test

time_based -> run it for 30 s, no matter if we completer before 30s , keep it running and let it run till at least 30 seconds

end_fsync -> Once all the operations are in line, the timer will go on until the last is completed.

Here is the output

FIO Sequential Read Test Output

We can notice that the BW is 11.9 MB/s and io — 357MB

--

--