Re: [RFC] fio: Token-based flow control

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

 



On 02/20/2012 10:15 AM, Jens Axboe wrote:
> On 02/17/2012 02:27 AM, Dan Ehrenberg wrote:
>> This patch allows two fio jobs to be kept to a certain
>> proportion of each other using token-based flow control.
>> There are three new parameters: flow, flow_watermark, and
>> flow_sleep, documented in the fio options. An example of an fio
>> job using these parameters is below:
>>
>> [global]
>> norandommap
>> thread
>> time_based
>> runtime=30
>> direct=1
>> ioengine=libaio
>> iodepth=256
>> size=100g
>> bs=8k
>> filename=/tmp/testfile
>> flow_watermark=100
>> flow_sleep=1000
>>
>> [job2]
>> numjobs=1
>> rw=write
>> flow=-8
>>
>> [job1]
>> numjobs=1
>> rw=randread
>> flow=1
>>
>> The motivating application of this patch was to allow random reads
>> and sequential writes at a particular given proportion.
>>
>> This initial version is only correct when run with 'thread', as shared
>> state is represented with a global variable. It also only allows two
>> jobs to be synchronized properly. A future version might do more, but
>> no more functionality was needed for my application.
>>
>> Tested: Ran a few fio jobs with this flow control, observing
>> the proportion of IOPS to match what was intended by the job file.
>> Varied the flow_watermark and flow_sleep parameters and observed
>> the effect on throughput.
> 
> I like this, it's definitely a useful feature. Any chance I could talk
> you into finishing the patch? You could have a flow_id= option, and then
> move the flow storage to being smalloc() backed.

Since I'm in such a good mood today, I did it myself. See:

http://git.kernel.dk/?p=fio.git;a=commit;h=9e684a4976b7934f5ce011ea281dfef3352e5738

It's your patch, just with a bit of glue to support arbitrary flows. If
you can confirm it still works for you, I'd appreciateit :-)

-- 
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