Search code examples
linuxiostoragebenchmarking

how fio iops logfiles are interpreted?


I am using fio for storage benchmarking and fio2gnuplot for plotting graphs, every time I run a test and look into logfiles of iops, second coloumn is always 1 which is iops value and due to this graphs are just a straight line perpendicular to Y axis .Which makes no sense. I tried various iodepths,ioengines but no use.am I using any parameters(options)wrong?

following is my jobfile.

[global]

enter code here

rw=randwrite
size=128m
thread=1
iodepth=2
ioengine=libaio
per_job_logs=0
directory=/home/fio



[job_512]
write_bw_log=logfiles_libaio/fio-test_512
write_iops_log=logfiles_libaio/fio-test_512
write_lat_log=logfiles_libaio/fio-test_512
bs=512b

and this is the logfile

1, 1, 0, 512
2, 1, 1, 512
18, 1, 1, 512
19, 1, 0, 512
31, 1, 1, 512
53, 1, 1, 512
55, 1, 1, 512
56, 1, 0, 512
59, 1, 1, 512
63, 1, 1, 512

Solution

  • According to fio manual(man fio), under "FIO FILE FORMATS", it says:

       Fio  supports  a  variety  of log file formats, for logging latencies, bandwidth, and IOPS. The logs
       share a common format, which looks like this:
    
       time (msec), value, data direction, offset
    
       Time for the log entry is always in milliseconds. The value logged depends on the type  of  log,  it
       will be one of the following:
    
    
       Latency log
              Value is in latency in usecs
       Bandwidth log
              Value is in KB/sec
       IOPS log
              Value is in IOPS
    
       Data direction is one of the following:
    
    
       0      IO is a READ
       1      IO is a WRITE
       2      IO is a TRIM
    

    However, I think the 'offset' should be 'IO size'.

    So, in your bandwidth case, it's:

    timestamp(ms), bandwidth(KB/sec), R/W, size