[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