From: Jens Axboe <axboe@kernel.dk>
To: Dan Ehrenberg <dehrenberg@google.com>
Cc: fio@vger.kernel.org, nauman@google.com, egouriou@google.com,
tirea@google.com
Subject: Re: [RFC] fio: Token-based flow control
Date: Mon, 20 Feb 2012 11:09:11 +0100 [thread overview]
Message-ID: <4F421BC7.40802@kernel.dk> (raw)
In-Reply-To: <4F420F34.9070902@kernel.dk>
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
next prev parent reply other threads:[~2012-02-20 10:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-17 1:27 [RFC] fio: Token-based flow control Dan Ehrenberg
2012-02-20 9:15 ` Jens Axboe
2012-02-20 10:09 ` Jens Axboe [this message]
2012-02-22 2:32 ` Daniel Ehrenberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F421BC7.40802@kernel.dk \
--to=axboe@kernel.dk \
--cc=dehrenberg@google.com \
--cc=egouriou@google.com \
--cc=fio@vger.kernel.org \
--cc=nauman@google.com \
--cc=tirea@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox