All of lore.kernel.org
 help / color / mirror / Atom feed
From: Erwan Velu <e.velu@criteo.com>
To: Hans-Peter Lehmann <hans-peter.lehmann@kit.edu>, fio@vger.kernel.org
Subject: Re: Question: t/io_uring performance
Date: Thu, 26 Aug 2021 09:27:37 +0200	[thread overview]
Message-ID: <867506cc-642e-1047-08c6-aae60e7294c5@criteo.com> (raw)
In-Reply-To: <9025606c-8579-bf81-47ea-351fc7ec81c3@kit.edu>


Le 25/08/2021 à 17:57, Hans-Peter Lehmann a écrit :
>
> Hello,
>
> I am currently trying to run the t/io_uring benchmark but I am unable 
> to achieve the IOPS that I would expect. In 2019, Axboe achieved 1.6M 
> IOPS [3] or 1.7M IOPS [1] using a single CPU core (4k random reads). 
> On my machine (AMD EPYC 7702P, 2x Intel P4510 NVMe SSD, separate 3rd 
> SSD for the OS), I can't even get close to those numbers.
>
> Each of my SSDs can handle about 560k IOPS when running t/io_uring. 
> Now, when I launch the benchmark with both SSDs, I still only get 
> about 580k IOPS, from which each SSD gets about 300k IOPS. When I 
> launch two separate t/io_uring instances, I get the full 560k IOPS on 
> each device. To me, this sounds like the benchmark is CPU bound. Given 
> that the CPU is quite decent, I am surprised that I only get half of 
> the single-threaded IOPS that my SSDs could handle (and 1/3 of what 
> Axboe got).
>
A few considerations here about your hardware.

You didn't mention the size of your P4510 and that's important as this 
will strongly defines the max you can achieve on this SSD. The 1TB model 
is limited at 465K read random, nearly 640K for the greater sizes.

These numbers are given for a QD set to 64 with 4 workers.

So in any way here to expect to reach what Jens did ;)


Did you checked how your NVMEs are connected via their PCI lanes ?

It's obvious here that you need multiple PCI-GEN3 lanes to reach 1.6M 
IOPS (I'd say two).

So if your disks are running on the same lane, then you'll have no 
chance getting higher than a single PCI GEN3 lane even with 2 NVMEs.


Then considering the EPYC processor, what's your current Numa 
configuration ? Are you NPS=1 ? 2 ? 4 ? (lscpu would give the answer)

If you want to run a single core benchmark, you should also ensure how 
the IRQs are pinned over the Cores and NUMA domains (even if it's a 
single socket CPU).

Depending on your server vendor, you should also considering tweaking 
the bios if you want to get the most of it. I'm especially thinking of 
the DRAM & IODie power management that are using set into 
powersaving/dynamic even if the cpu govenor is set to performance. This 
could influence the final result but that's not your main trouble here.




  reply	other threads:[~2021-08-26  7:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25 15:57 Question: t/io_uring performance Hans-Peter Lehmann
2021-08-26  7:27 ` Erwan Velu [this message]
2021-08-26 15:57   ` Hans-Peter Lehmann
2021-08-27  7:20     ` Erwan Velu
2021-09-01 10:36       ` Hans-Peter Lehmann
2021-09-01 13:17         ` Erwan Velu
2021-09-01 14:02           ` Hans-Peter Lehmann
2021-09-01 14:05             ` Erwan Velu
2021-09-01 14:17               ` Erwan Velu
2021-09-06 14:26                 ` Hans-Peter Lehmann
2021-09-06 14:41                   ` Erwan Velu
2021-09-08 11:53                   ` Sitsofe Wheeler
2021-09-08 12:22                     ` Jens Axboe
2021-09-08 12:41                       ` Jens Axboe
2021-09-08 16:12                         ` Hans-Peter Lehmann
2021-09-08 16:20                           ` Jens Axboe
2021-09-08 21:24                             ` Hans-Peter Lehmann
2021-09-08 21:34                               ` Jens Axboe
2021-09-10 11:25                                 ` Hans-Peter Lehmann
2021-09-10 11:45                                   ` Erwan Velu
2021-09-08 12:33                 ` Jens Axboe
2021-09-08 17:11                   ` Erwan Velu
2021-09-08 22:37                     ` Erwan Velu
2021-09-16 21:18                       ` Erwan Velu
2021-09-21  7:05                         ` Erwan Velu
2021-09-22 14:45                           ` Hans-Peter Lehmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=867506cc-642e-1047-08c6-aae60e7294c5@criteo.com \
    --to=e.velu@criteo.com \
    --cc=fio@vger.kernel.org \
    --cc=hans-peter.lehmann@kit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.