Fio results are steadily increasing IOPS, not what I expected

481 views Asked by At

I'm trying to somehow test my rbd storage with random read, random write, mixed randrw, but the output is not correct, it is a sequential growing number.

What is wrong with my steps?

This is the fio file that I ran:

; fio-rand-write.job for fiotest

[global]
name=fio-rand-write
filename=fio-rand-write
rw=randwrite
bs=4K
direct=1
write_iops_log=rand-read

[file1]
size=1G
ioengine=libaio
iodepth=16

And the result is this:

head rand-read_iops.1.log
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
3, 1, 1, 4096, 0
4, 1, 1, 4096, 0
5, 1, 1, 4096, 0
5, 1, 1, 4096, 0
5, 1, 1, 4096, 0

tail rand-read_iops.1.log
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0

I'm using fio 3.18.

Why I don't get the iops that is the real one?

1

There are 1 answers

0
Anon On

but the output is not correct, it is a sequential growing number

Which column are you referring to? If you mean the left most column then isn't that time per the fio Log File Formats documentation?

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, block size (bytes), offset (bytes)

Doesn't time generally monotonically increase relative to prior readings (accounting for precision)?

Also see the documentation for write_iops_log that says:

Because fio defaults to individual I/O logging, the value entry in the IOPS log will be 1 unless windowed logging (see log_avg_msec) has been enabled