Welcome! Log In Create A New Profile

Advanced

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping
January 18, 2021 10:34PM
It depends on if disk io is the performance hot spot or not. If yes, io_uring shows improvement than libaio. With 4KB/100KB length 1 Nginx thread it's hard to see performance difference because iostat is only around ~10MB/100MB per second. Disk io is not the performance bottle neck, both libaio and io_uring have the same performance. If you increase request size or Nginx threads number, for example 1MB length or Nginx thread number 4. In this case, disk io became the performance bottle neck, you will see io_uring performance improvement.


-----Original Message-----
From: nginx-devel <nginx-devel-bounces@nginx.org> On Behalf Of Vladimir Homutov
Sent: Monday, January 18, 2021 10:11 PM
To: nginx-devel@nginx.org
Subject: Re: [PATCH] Add io_uring support in AIO(async io) module

18.01.2021 11:24, Zhao, Ping пишет:
> Hi Vladimir,
>
> I tested with response from 4KB to 1MB length which are ok. The procedure is first storing all the cache files on a nvme disk(~20T), then check the iostat & NIC bandwidth since then Nginx will use the cache files on disk with io_uring or libaio. So my patch didn't impact sendfile procedure, it provides another implementation of legacy libaio.
>
> Regards,
> Ping

yes, I see that your implementation is different.
I wonder, if you can see any difference in performance depending on request size? Is it always constant?

>
> -----Original Message-----
> From: nginx-devel <nginx-devel-bounces@nginx.org> On Behalf Of
> Vladimir Homutov
> Sent: Monday, January 18, 2021 3:28 PM
> To: nginx-devel@nginx.org
> Subject: Re: [PATCH] Add io_uring support in AIO(async io) module
>
> On Thu, Jan 14, 2021 at 05:53:17AM +0000, Zhao, Ping wrote:
>> # HG changeset patch
>> # User Ping Zhao <ping.zhao@intel.com> # Date 1610554205 18000
>> # Wed Jan 13 11:10:05 2021 -0500
>> # Node ID 95886c3353dc80a3da215027c1e0f2141e47e911
>> # Parent b055bb6ef87e49232a7fcb4e5334b8efda3b6499
>> Add io_uring support in AIO(async io) module.
>>
>> Hello, This is a patch to support io_uring in AIO(async io) module.
>> Basically you don't need change your configurations. If you're using new kernel(above v5.1) which supports io_uring, and you have "aio on" in your configuration. Nginx will use io_uring for FILE_AIO access which can achieve performance improvement than legacy libaio.
>>
>> Checked with iostat which shows nvme disk io has 30%+ performance improvement with 1 thread.
>> Use wrk with 100 threads 200 connections(-t 100 -c 200) with 25000 random requests.
>>
>> iostat(B/s)
>> libaio ~1.0 GB/s
>> io_uring 1.3+ GB/s
>
> Hello,
>
> what size of request did you use in your testing?
> The previous attempt to use uring
> (http://mailman.nginx.org/pipermail/nginx-devel/2020-November/013632.h
> tml) seem to have issues with big requests and fallback to sendfile in
> such cases. Note that from the standpoint of HTTP server, most requests are usually larger than 4Kb.
> _______________________________________________
> nginx-devel mailing list
> nginx-devel@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
> _______________________________________________
> nginx-devel mailing list
> nginx-devel@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 1484 January 14, 2021 12:54AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Vladimir Homutov 424 January 18, 2021 02:30AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 366 January 18, 2021 03:26AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Vladimir Homutov 389 January 18, 2021 09:12AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 332 January 18, 2021 10:34PM

Re: [PATCH] Add io_uring support in AIO(async io) module

Vladimir Homutov 320 January 19, 2021 11:44AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 310 January 20, 2021 08:46PM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 299 January 25, 2021 03:26AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 338 February 03, 2021 09:12AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 306 February 03, 2021 09:34PM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 303 February 04, 2021 02:10AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 313 February 04, 2021 03:56AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 351 February 04, 2021 07:56PM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 304 February 05, 2021 01:44AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 307 February 06, 2021 09:18PM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 342 February 08, 2021 12:18PM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 359 February 09, 2021 03:38AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 357 February 09, 2021 08:32AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 319 February 15, 2021 01:10AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 337 February 15, 2021 03:12AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Vadim Fedorenko 315 February 15, 2021 06:06AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 349 February 22, 2021 02:40AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 302 February 25, 2021 02:00AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 314 February 25, 2021 06:02AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 293 February 25, 2021 08:24PM

Re: [PATCH] Add io_uring support in AIO(async io) module

Mikhail Isachenkov 332 February 26, 2021 03:42AM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 338 February 27, 2021 07:50AM

Re: [PATCH] Add io_uring support in AIO(async io) module

Maxim Dounin 377 March 22, 2021 12:18PM

Re: [PATCH] Add io_uring support in AIO(async io) module

Vadim Fedorenko 330 February 21, 2021 04:56PM

RE: [PATCH] Add io_uring support in AIO(async io) module

Zhao, Ping 369 February 22, 2021 03:28AM

Re: [PATCH] Add io_uring support in AIO(async io) module

pingzhao 296 August 25, 2021 09:50PM

Re: [PATCH] Add io_uring support in AIO(async io) module

splitice 380 August 25, 2021 10:28PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 307
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready