Re: Random IO pattern ratios

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

 



On Thu, Apr 25 2013, Brian Carey wrote:
> Hello all,
> 
> I'm fairly new to fio and am trying to vary the ratio of sequential to
> random IO per job.  I'm not sure if I'm reading the section of the
> HowTo on mixed IO types right or not .  I'm trying to have the first
> job do 100% sequential access, the 2nd do 50% sequential/50% random,
> and the 3rd do 100% random.  Below is the section of the How To that
> I'm referring to as well as a snip of my config.
> 
> For the mixed io types, the default is to split them 50/50.
> For certain types of io the result may still be skewed a bit,
> since the speed may be different. It is possible to specify
> a number of IO's to do before getting a new offset, this is
> one by appending a ':<nr>' to the end of the string given.
> For a random read, it would look like 'rw=randread:8' for
> passing in an offset modifier with a value of 8. If the
> suffix is used with a sequential IO pattern, then the value
> specified will be added to the generated offset for each IO.
> For instance, using rw=write:4k will skip 4k for every
> write. It turns sequential IO into sequential IO with holes.
> See the 'rw_sequencer' option.
> 
> [4k 70/30% R/W - 100% seq]
> bs=4k
> rw=rw
> rwmixread=70
> rwmixwrite=30
> stonewall
> 
> [4k 70/30% R/W - 50% seq]
> bs=4k
> rw=randrw:2
> rwmixread=70
> rwmixwrite=30
> stonewall
> 
> [4k 70/30% R/W - 0% seq]
> bs=4k
> rw=randrw
> rwmixread=70
> rwmixwrite=30
> stonewall

It looks correct. For the middle one, the way fio will behave is that it
will generate a random offset, read 4k from that, then read 4k again,
then generate a new random offset. So it's 50/50 random/seq in the sense
that for each seek, you will have two sequential IOs. Which means that
every IO will be either sequential to the former, or completely random.
That, in essense, is 50% random and 50% sequential. Outside of that,
there's currently no way to tell fio to do X ios randomly, then Y ios
sequentially. If 1/1 is good enough, then the job as listed will get
that done.

Job 1/3 are straight forward and do what you are looking for without
doubt.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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