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

Zhao, Ping ping.zhao at intel.com
Mon Jan 18 08:24:58 UTC 2021


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

-----Original Message-----
From: nginx-devel <nginx-devel-bounces at nginx.org> On Behalf Of Vladimir Homutov
Sent: Monday, January 18, 2021 3:28 PM
To: nginx-devel at 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 at 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.html)
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 at nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel


More information about the nginx-devel mailing list