* io_submit depth
@ 2018-05-15 15:20 Julien Desfossez
[not found] ` <CALjAwxhF2s9V=JcjU5Lu74nLio+9S=YRrG9PpSoSkJLeXGU9TQ@mail.gmail.com>
0 siblings, 1 reply; 2+ messages in thread
From: Julien Desfossez @ 2018-05-15 15:20 UTC (permalink / raw)
To: fio
Hi,
When stracing fio running on Linux (4.13) with libaio engine, I saw that
only one request is sent in the io_submit system call regardless of the
iodepth parameter value.
To see this:
strace -f fio --name=tmp --filename=/tmp/fio --filesize=8G \
--ioengine=libaio --bs=4k --iodepth=32 --rw=randwrite \
--runtime=10 2>&1 | grep io_submit
All of the lines look like this:
io_submit(140287955259392, 1, [{pwrite, fildes=3, str="...",
nbytes=4096, offset=1035223040}]) = 1
I would have expected to see the second parameter to be 32.
I see that the iodepth parameter has an impact in how many requests are
sent at the beginning (in this example, I see 32 requests sent), but
after that the requests are sent one by one as soon as one completes. I
understand this is done to keep the number of "requests in flight"
steady, but this is not what I expected when setting iodepth.
So is there a way to run fio so that we can send multiple requests per
io_submit call ?
Thanks,
Julien
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: io_submit depth
[not found] ` <CALjAwxhF2s9V=JcjU5Lu74nLio+9S=YRrG9PpSoSkJLeXGU9TQ@mail.gmail.com>
@ 2018-05-15 16:54 ` Julien Desfossez
0 siblings, 0 replies; 2+ messages in thread
From: Julien Desfossez @ 2018-05-15 16:54 UTC (permalink / raw)
To: Sitsofe Wheeler; +Cc: fio
On 05/15/2018 12:32 PM, Sitsofe Wheeler wrote:
> Hello Julien,
>
> On 15 May 2018 at 16:20, Julien Desfossez <ju@klipix.org> wrote:
>> Hi,
>>
>> When stracing fio running on Linux (4.13) with libaio engine, I saw that
>> only one request is sent in the io_submit system call regardless of the
>> iodepth parameter value.
>>
>> To see this:
>> strace -f fio --name=tmp --filename=/tmp/fio --filesize=8G \
>> --ioengine=libaio --bs=4k --iodepth=32 --rw=randwrite \
>> --runtime=10 2>&1 | grep io_submit
>>
>> All of the lines look like this:
>> io_submit(140287955259392, 1, [{pwrite, fildes=3, str="...", nbytes=4096,
>> offset=1035223040}]) = 1
>>
>> I would have expected to see the second parameter to be 32.
>
> By the by, did you see the warnings related to libaio in the
> manual/HOWTO (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-ioengine
> and http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-iodepth
> ) regarding buffering / not setting direct=1?
Yes I did and I usually benchmark with direct=1, I just removed
parameters while doing this test.
>> I see that the iodepth parameter has an impact in how many requests are sent
>> at the beginning (in this example, I see 32 requests sent), but after that
>> the requests are sent one by one as soon as one completes. I understand this
>> is done to keep the number of "requests in flight" steady, but this is not
>> what I expected when setting iodepth.
>>
>> So is there a way to run fio so that we can send multiple requests per
>> io_submit call ?
>
> Is iodepth_batch_submit
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-iodepth-batch-submit
> ) and following what you're looking for?
>
Indeed it helps !
Apparently what I am looking for is:
--iodepth=32 --iodepth_batch=32 --iodepth_batch_complete=32
Thanks !
Julien
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-05-15 16:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-15 15:20 io_submit depth Julien Desfossez
[not found] ` <CALjAwxhF2s9V=JcjU5Lu74nLio+9S=YRrG9PpSoSkJLeXGU9TQ@mail.gmail.com>
2018-05-15 16:54 ` Julien Desfossez
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.