All of lore.kernel.org
 help / color / mirror / Atom feed
* multiple --name parameters with non-file engine?
@ 2014-08-19  0:42 Mark Nelson
  2014-08-22 22:23 ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Nelson @ 2014-08-19  0:42 UTC (permalink / raw)
  To: fio

Hi Guys,

I'm using the librbd engine and trying to determine what exactly happens 
when multiple --name parameters are passed.  Primarily, I'm wondering if 
each fio process ends up writing to the same blocks on the rbd volume 
during sequential writes.  Looking at the code, I see a note that we 
pretend to deal with files even if the engine doesn't understand the 
concept of files:

https://github.com/axboe/fio/blob/master/engines/rbd.c#L405
https://github.com/axboe/fio/blob/master/filesetup.c#L1239

I'm not seeing anything (might be missing it) in the rbd engine or there 
that would partition the volume based on the process though.  Am I 
missing anything?

Thanks,
Mark

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: multiple --name parameters with non-file engine?
  2014-08-19  0:42 multiple --name parameters with non-file engine? Mark Nelson
@ 2014-08-22 22:23 ` Jens Axboe
  2014-08-23  1:45   ` Mark Nelson
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Axboe @ 2014-08-22 22:23 UTC (permalink / raw)
  To: Mark Nelson, fio

On 2014-08-18 19:42, Mark Nelson wrote:
> Hi Guys,
>
> I'm using the librbd engine and trying to determine what exactly happens
> when multiple --name parameters are passed.  Primarily, I'm wondering if
> each fio process ends up writing to the same blocks on the rbd volume
> during sequential writes.  Looking at the code, I see a note that we
> pretend to deal with files even if the engine doesn't understand the
> concept of files:
>
> https://github.com/axboe/fio/blob/master/engines/rbd.c#L405
> https://github.com/axboe/fio/blob/master/filesetup.c#L1239
>
> I'm not seeing anything (might be missing it) in the rbd engine or there
> that would partition the volume based on the process though.  Am I
> missing anything?

The same thing will happen as if you ran two instances of fio with the 
same options. For rbd, each job will create/connect/open and rbd 
instance. For each of these, you can set the rbd pool and clientname.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: multiple --name parameters with non-file engine?
  2014-08-22 22:23 ` Jens Axboe
@ 2014-08-23  1:45   ` Mark Nelson
  2014-08-23  6:17     ` Sitsofe Wheeler
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Nelson @ 2014-08-23  1:45 UTC (permalink / raw)
  To: Jens Axboe, fio

On 08/22/2014 05:23 PM, Jens Axboe wrote:
> On 2014-08-18 19:42, Mark Nelson wrote:
>> Hi Guys,
>>
>> I'm using the librbd engine and trying to determine what exactly happens
>> when multiple --name parameters are passed.  Primarily, I'm wondering if
>> each fio process ends up writing to the same blocks on the rbd volume
>> during sequential writes.  Looking at the code, I see a note that we
>> pretend to deal with files even if the engine doesn't understand the
>> concept of files:
>>
>> https://github.com/axboe/fio/blob/master/engines/rbd.c#L405
>> https://github.com/axboe/fio/blob/master/filesetup.c#L1239
>>
>> I'm not seeing anything (might be missing it) in the rbd engine or there
>> that would partition the volume based on the process though.  Am I
>> missing anything?
>
> The same thing will happen as if you ran two instances of fio with the
> same options. For rbd, each job will create/connect/open and rbd
> instance. For each of these, you can set the rbd pool and clientname.
>

Thanks Jens.  What I'd like to be able to do is start multiple fio 
processes but have each one only write to a non-overlapping portion of 
the block device.  Preferably I wouldn't have to manually figure out the 
ranges myself.  Any way to do something like that?

For now if we are interested in 4MB IOs to RBD we can just do 4MB random 
as that more or less translates into the same thing behind the scenes in 
Ceph anyway.

Mark


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: multiple --name parameters with non-file engine?
  2014-08-23  1:45   ` Mark Nelson
@ 2014-08-23  6:17     ` Sitsofe Wheeler
  0 siblings, 0 replies; 4+ messages in thread
From: Sitsofe Wheeler @ 2014-08-23  6:17 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Jens Axboe, fio

On 23 August 2014 02:45, Mark Nelson <mark.a.nelson@gmail.com> wrote:
> Thanks Jens.  What I'd like to be able to do is start multiple fio processes
> but have each one only write to a non-overlapping portion of the block
> device.  Preferably I wouldn't have to manually figure out the ranges
> myself.  Any way to do something like that?

A quick Google for "fio zones jobs" tuns up
http://www.spinics.net/lists/fio/msg01791.html where the fourth answer
on that page seems relevant to your case.

For each job (essentially name section) you can set an offset and a
size and I/O will be done between offset and offset+size. If you want
to move the starting offset of each extra job automatically you could
use offset_increment
(http://git.kernel.dk/?p=fio.git;a=blob;f=HOWTO;h=73e58ff695c3384df30094d6c15ebe9ed615460f;hb=HEAD#l770
). You can also use numjobs
(http://git.kernel.dk/?p=fio.git;a=blob;f=HOWTO;h=73e58ff695c3384df30094d6c15ebe9ed615460f;hb=HEAD#l1275
) to automatically create job clones.

Perhaps this sort of "parallel non-overlapping zoned I/O" case would
be a useful example fio job file (for example I never realised size
was relative to offset...)?

-- 
Sitsofe | http://sucs.org/~sits/


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-08-23  6:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-19  0:42 multiple --name parameters with non-file engine? Mark Nelson
2014-08-22 22:23 ` Jens Axboe
2014-08-23  1:45   ` Mark Nelson
2014-08-23  6:17     ` Sitsofe Wheeler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.