All of lore.kernel.org
 help / color / mirror / Atom feed
* rand-read: increasing iodepth makes throughput drop
@ 2018-10-24 18:02 Federico Motta
  2018-10-25  5:55 ` Elliott, Robert (Persistent Memory)
  0 siblings, 1 reply; 10+ messages in thread
From: Federico Motta @ 2018-10-24 18:02 UTC (permalink / raw)
  To: fio; +Cc: Paolo Valente, Mark Brown, Linus Walleij, Ulf Hansson


[-- Attachment #1.1.1: Type: text/plain, Size: 1825 bytes --]

Hi,
Paolo Valente and I found an unexpected surprise while investigating
iodepth impact on throughput. Both on my device (ssd samsung 960 pro
nvme m.2 512gb) and his one (ssd plextor px-256m5s), throughput
decreases as the iodepth increases.

What follows is a summary of the testbed details:
- mq-deadline scheduler
- 4 fio doing rand-read I/O (4 is the number of physical cores of our cpus)
- throughput was measured with "iostat -tmd /dev/$disk 3"
- from the above command the first "mb_read/s" occurrence was ignored
because of ramp time and only on the following ones average and stdev
were computed
- duration of 15 sec

More details can be found in the jobfiles in attachment, please note that:
- global sections differ only for the first two lines (iodepth and ioengine)
- job sections differ only for N (0 to 3)


What we observed is that with "iodepth=1 and ioengine=sync" throughput
is greater than with "iodepth=8 and ioengine=libaio".  For example:
- iodepth=1,  sync: 170.942 ± 11.122 [mb/s]
- iodepth=8, async: 161.360 ± 10.165 [mb/s]


So, I would like to ask:
1) Is it normal that throughput drop? (shouldn't device internal queues
be more filled with a greater iodepth and thus lead to a greater
throughput?)
2) If (1) is normal, for which reasons?
3) If (1) is not normal, we thought to investigate about the average
number of requests in software and hardware queues (especially the
latter ones). In fact we expect a correlation between that number and
throughput.
4) If (3) is correct, how can we measure the average number of requests
in the device internal queues? Is it possible to do that directly with fio?
5) If (3) is not correct, what should we look for? and (if possible)
with which tools?

Under request I can give more details.
Thank you,
Federico

[-- Attachment #1.1.2: fio_jobfiles.zip --]
[-- Type: application/zip, Size: 2866 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

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

end of thread, other threads:[~2018-11-10 19:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-24 18:02 rand-read: increasing iodepth makes throughput drop Federico Motta
2018-10-25  5:55 ` Elliott, Robert (Persistent Memory)
2018-10-29  9:07   ` Federico Motta
2018-10-31 14:19   ` Federico Motta
2018-10-31 17:31     ` Jeff Furlong
2018-11-07 11:08       ` Federico Motta
2018-11-07 15:38         ` Sitsofe Wheeler
2018-11-09  9:30           ` Federico Motta
2018-11-09 20:21             ` Elliott, Robert (Persistent Memory)
2018-11-10  9:29               ` Paolo Valente

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.