Multiple jobs and fill_device
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=1Will 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
Hi,
Quoted 19 lines · Oleg Sivokon
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
Quoted 1 line
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
).
Quoted 2 lines
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.
Quoted 3 lines
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.
Signature · 1 line
Sitsofe | http://sucs.org/~sits/