On Sat, 26 Jun 2021 at 05:32, Jared Walton <jawalking@xxxxxxxxx> wrote: > > Sorry if this is bringing up an old thread, but I've been googling and I can't find an answer so I thought I'd ask here. Fair enough but please don't send fio mails to just me - send them to the mailing list so: - More people are given the chance to see and reply - The threads get archived so they turn up in search results ;-) Out of curiosity, what did you make of https://serverfault.com/q/923487 , https://unix.stackexchange.com/q/459045 ? Additionally because you didn't state a platform and a concrete job file the answers below will have to be deliberately vague. > when you say: >> >> io will not create parallel *fio jobs* just because of iodepth BUT using parallel fio jobs is another way of increasing the amount of simultaneous I/O being submitted at any given time (by using different threads/processes) and using both on the same device will act in tandem (so if you have two fio jobs submitting asynchronous I/O at an iodepth of 16 each your OS could be be actually receiving 32 I/Os at any given time). There can be reasons for combining the two (e.g. you have multiple devices and they are so fast that one CPU can't keep up even when submitting I/O asynchronously). > > > What is the expected outcome when a single job has numjobs=2 and iodepth=16? Will this result in a total iodepth of 32? Or will fio use 2 threads to maintain an iodepth of 16? You are using iodepth in two different contexts: 1. fio's internal queue for a single job 2. The simultaneous I/O going to kernel from multiple threads/processes Let's arbitrarily redefine thing: 1. iodepth - Maximum amount of simultaneous I/O *fio* will queue for a *single job* 2. queue depth - amount of simultaneous I/O going to kernel from multiple threads/processes > What is the expected outcome when a single job has numjobs=2 and iodepth=16? Will this result in a total iodepth of 32? Each job (more on that in a moment) queues *up to* 16 I/Os simultaneously (iodepth) and the total amount of simultaneous I/O from all jobs is *up to* 32 I/Os (queue depth). There may be reasons why a depth of 32 isn't reached hence some of the careful wording (you can check the depths that were actually reached by looking at fio's output after the jobs have completed). > Or will fio use 2 threads to maintain an iodepth of 16? As stated in the fio documentation (https://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-thread ) by default a job is a *process* on non-Windows platforms/most ioengines unless you use the thread option. (Please try to avoid top-posting on this mailing list. Thanks!) -- Sitsofe