Details about the usage of flow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



All,

I recently filed https://github.com/axboe/fio/issues/1483 on github
describing my usage of multiple concurrent jobs to split random read
and random write so I can have a different number of reader and writer
threads. I was informed that what I actually want is to use "flow=" to
specify the ratio of activity between jobs.

My issue while testing the use of flow, is that it seems to be off by
a factor of 10x. For example, the following has two jobs, one for
readers and one for writers. The writer, as can be seen, has "numjobs"
set to 8, while the reader has "numjobs" set to 64. Flow is set to
"100" for reader, and "1" for writer. But from the output below we can
see the actual split is more like 786 to 1.

Jobs: 72 (f=72):
[w(8),r(64)][26.6%][r=1254MiB/s,w=1632KiB/s][r=321k,w=408 IOPS][eta
44m:11s]

Should I be dividing the flow value by the ratio of "numjobs" as well?
The command running obviously has an 8:1 ratio of readers to writers,
and I've defined a 100:1 ratio in the value of "flow", so am I
actually seeing an 800:1 here?

I suspect I'm missing a key piece of information, but the
documentation doesn't explicitly call this out. The line that makes me
think I may need to adjust for "numjobs" within each job is "The flow
parameter stands for how much should be added or subtracted to the
flow counter on each iteration of the main I/O loop.". This makes me
suspect that each of the threads spawned under a job definition is
spawned with it's own 100:1 ratio, and since there's an 8:1 numjobs
ratio, I end up seeing the above.

The command, in total, is below.

fio --output=fio-logs/m2test-01/20221102/manual-flow-test.write-1.qd-32/fio.manual-flow-test.log
\
--exitall_on_error --bs=4Ki --direct=1 --fadvise_hint=random
--filename=/mnt/testing/fio \
--group_reporting=1 --iodepth=32 --ioengine=libaio
--ioscheduler=mq-deadline --log_avg_msec=1000 \
--log_compression=1m --log_store_compressed=1 --ramp_time=10
--randrepeat=0 --runtime=1h --thread \
--time_based --write_bw_log=fio-logs/m2test-01/20221102/manual-flow-test.write-1.qd-32/fio-stress
\
--write_iops_log=fio-logs/m2test-01/20221102/manual-flow-test.write-1.qd-32/fio-stress
\
--write_lat_log=fio-logs/m2test-01/20221102/manual-flow-test.write-1.qd-32/fio-stress
\
--name=writer --new_group --stonewall --numjobs=8 --rw=randwrite
--flow=1 --exitall \
--name=reader --new_group --numjobs=64 --rw=randread --flow=100


Thanks for any advice,
Tom



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux