Welcome! Log In Create A New Profile

Advanced

Re: Re: [PATCH 8 of 8] new io_uring event module

성소윤
November 25, 2020 07:44AM
Mathew


Thank you for your feedback.

I did not implement file management of Nginx with io_uring.

So I think the performance improvement is mostly due to socket IO.

I will try to implement asynchronous file interaction with io_uring later.


Also I will test proxy_pass / fastcgi_pass benchmarks and get back to you
soon.



Thank you.

SoYun

On Tue, Nov 24, 2020 at 6:09 PM Mathew Heard <mat999@gmail.com> wrote:

> SoYun,
>
> Interesting patchset. Have you by chance also tested proxy_pass /
> fastcgi_pass performance?
>
> I'd be interested to know if the significant performance improvement was
> due to filesystem interaction or socket.
>
> Regards,
> Mathew
>
>
> On Tue, 24 Nov 2020 at 19:43, SoYun Seong <thdbsdox12@gmail.com> wrote:
>
>> # HG changeset patch
>> # User SoYun Seong <thdbsdox12@gmail.com>
>> # Date 1606129415 0
>> # Mon Nov 23 11:03:35 2020 +0000
>> # Node ID d7420a5777b63c8a8cfb7e98a522893490995510
>> # Parent 09dfe4a92414513c6bd3c18d871e8a76ed19c3d7
>> new io_uring event module.
>>
>> I implemented ngx_uring_module using Linux io_uring API to improve
>> performance of Nginx for Linux by minimizing system calls. There are
>> performance improvements in both request/sec and average latency. The
>> result is located at https://github.com/dachshu/nginx.
>>
>> However, there are some places that uses local variable buffer(stack) to
>> recv and send data. To do asynchronous IO, recv and send buffers should be
>> located at safe memory(like heap, data). Therefore it is needed to make
>> these codes to use allocated memory from memory pool when using
>> asynchronous IO.
>>
>> Also I am working on improve performance of Nginx for Windows using
>> Registered IO and IOCP.
>>
>> diff -r 09dfe4a92414 -r d7420a5777b6 auto/os/linux
>> --- a/auto/os/linux Mon Nov 23 11:01:36 2020 +0000
>> +++ b/auto/os/linux Mon Nov 23 11:03:35 2020 +0000
>> @@ -89,6 +89,30 @@
>> fi
>>
>>
>> +# io_uring
>> +
>> +ngx_feature="uring"
>> +ngx_feature_name="NGX_HAVE_URING"
>> +ngx_feature_run=yes
>> +ngx_feature_incs="#include <liburing.h>"
>> +ngx_feature_path="-I src/liburing/src/include/"
>> +ngx_feature_libs="-L src/liburing/src/ -luring"
>> +ngx_feature_test="struct io_uring ring;
>> + struct io_uring_params params;
>> + if (io_uring_queue_init_params(32768, &ring, &params)
>> < 0) return 1;
>> + if (!(params.features & IORING_FEAT_FAST_POLL)) return
>> 1;"
>> +. auto/feature
>> +
>> +if [ $ngx_found = yes ]; then
>> + have=NGX_HAVE_CLEAR_EVENT . auto/have
>> + CORE_SRCS="$CORE_SRCS $URING_SRCS"
>> + CORE_INCS="$CORE_INCS $ngx_feature_path"
>> + CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
>> + EVENT_MODULES="$EVENT_MODULES $URING_MODULE"
>> + EVENT_FOUND=YES
>> +fi
>> +
>> +
>> # O_PATH and AT_EMPTY_PATH were introduced in 2.6.39, glibc 2.14
>>
>> ngx_feature="O_PATH"
>> diff -r 09dfe4a92414 -r d7420a5777b6 auto/sources
>> --- a/auto/sources Mon Nov 23 11:01:36 2020 +0000
>> +++ b/auto/sources Mon Nov 23 11:03:35 2020 +0000
>> @@ -120,6 +120,9 @@
>> EPOLL_MODULE=ngx_epoll_module
>> EPOLL_SRCS=src/event/modules/ngx_epoll_module.c
>>
>> +URING_MODULE=ngx_uring_module
>> +URING_SRCS=src/event/modules/ngx_uring_module.c
>> +
>> IOCP_MODULE=ngx_iocp_module
>> IOCP_SRCS=src/event/modules/ngx_iocp_module.c
>>
>> _______________________________________________
>> 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 8 of 8] new io_uring event module

SoYun Seong 187 November 24, 2020 03:46AM

Re: [PATCH 8 of 8] new io_uring event module

splitice 40 November 24, 2020 04:10AM

Re: Re: [PATCH 8 of 8] new io_uring event module

성소윤 62 November 25, 2020 07:44AM

Re: Re: [PATCH 8 of 8] new io_uring event module

성소윤 44 December 01, 2020 06:00AM

Re: [PATCH 8 of 8] new io_uring event module

Vladimir Homutov 46 November 30, 2020 09:40AM



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

Online Users

Guests: 53
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready