All of lore.kernel.org
 help / color / mirror / Atom feed
* Multiple jobs and fill_device
@ 2019-12-25  9:11 Oleg Sivokon
  2019-12-29 21:09 ` Sitsofe Wheeler
  0 siblings, 1 reply; 2+ messages in thread
From: Oleg Sivokon @ 2019-12-25  9:11 UTC (permalink / raw)
  To: fio

Hello list,

I'm wondering how the configuration below is interpreted:

    [global]
    ioengine=libaio
    direct=1
    loops=1
    numjobs=8
    
    [write-prep]
    rw=write
    filename=/dev/sdb
    iodepth=16
    bs=16k
    fill_device=1
    stonewall=1

Will every one of the 8 jobs try to fill the device completely or will
they split the task of filling the device between themselves, where each
will do only 1/8 of filling the device?  My reading of documentation
seems to suggest the device will be filled 8 times, with jobs, possibly,
stepping on each other's toes (i.e. contesting the same block), but I'm
not sure.

Best.

Oleg


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

* Re: Multiple jobs and fill_device
  2019-12-25  9:11 Multiple jobs and fill_device Oleg Sivokon
@ 2019-12-29 21:09 ` Sitsofe Wheeler
  0 siblings, 0 replies; 2+ messages in thread
From: Sitsofe Wheeler @ 2019-12-29 21:09 UTC (permalink / raw)
  To: Oleg Sivokon; +Cc: fio

Hi,

On Wed, 25 Dec 2019 at 09:12, Oleg Sivokon <oleg.sivokon@replix.io> wrote:
>
> Hello list,
>
> I'm wondering how the configuration below is interpreted:
>
>     [global]
>     ioengine=libaio
>     direct=1
>     loops=1
>     numjobs=8
>
>     [write-prep]
>     rw=write
>     filename=/dev/sdb
>     iodepth=16
>     bs=16k
>     fill_device=1
>     stonewall=1
>
> Will every one of the 8 jobs try to fill the device completely or will

Yes the device will be filled but not due to fill_device=1.
Confusingly fill_device is actually meant for when you are creating
files on filesystems where you want the file to use up all the
remaining space
(https://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-fill-device
says this a different way). A file representing a device will already
have a fixed size that can't be grown by just writing to it (OK
there's thin provisioning but even there the "device" has a fixed size
ahead of time). When a file already has a size that is what is used
when "size" is not set (see
https://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-size
).

> they split the task of filling the device between themselves, where each
> will do only 1/8 of filling the device?  My reading of documentation

No they will all overwrite/overlap the same areas.

> seems to suggest the device will be filled 8 times, with jobs, possibly,
> stepping on each other's toes (i.e. contesting the same block), but I'm
> not sure.

Your reading is correct - they will step on each others toes. If you
want to somehow avoid this you'll have to look into offset_increment
(https://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-offset-increment
) and size (https://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-size
).

NB: stonewall=1 likely won't do anything in this case because no job
definition is "after" another when using numjobs within the same job.

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


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

end of thread, other threads:[~2019-12-29 21:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-25  9:11 Multiple jobs and fill_device Oleg Sivokon
2019-12-29 21:09 ` 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.