Re: nginxQuic: скорость загрузки при активации kTLS
Илья Шипицин
chipitsine на gmail.com
Пт Янв 12 11:59:25 UTC 2024
On Fri, Jan 12, 2024, 12:03 <izorkin на gmail.com> wrote:
> Добрый день, Илья.
>
>
> Первый вариант патча оказывается не рабочий, забыл применить:
>
> gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror
> -g -I src/core -I src/event -I src/event/modules -I src/event/quic -I
> src/os/unix -I /nix/store/2ysp5ichpc$
>
> -o objs/src/http/ngx_http_file_cache.o \
>
> src/http/ngx_http_file_cache.c
>
> src/event/quic/ngx_event_quic_output.c: In function
> 'ngx_quic_allow_segmentation':
>
> src/event/quic/ngx_event_quic_output.c:249:36: error: variable 'len' set
> but not used [^[]8;;
> https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-but-set-variable$
>
> 249 | size_t bytes, len;
>
> | ^~~
>
>
>
> Сработал такой патч:
>
> diff --git a/src/event/quic/ngx_event_quic_output.c
> b/src/event/quic/ngx_event_quic_output.c
>
> index 914d81921..27efc1950 100644
>
> --- a/src/event/quic/ngx_event_quic_output.c
>
> +++ b/src/event/quic/ngx_event_quic_output.c
>
> @@ -303,7 +303,7 @@ ngx_quic_allow_segmentation(ngx_connection_t *c)
>
> }
>
> }
>
>
>
> - return 0;
>
> + return 1;
>
> }
>
>
>
> Теперь используется sendmmsg()
>
> 1065 36.0% 36.0% 1065 36.0% _aesni_ctr32_ghash_6x
>
> 1018 34.4% 70.4% 1018 34.4% __sendmmsg
>
> 268 9.1% 79.4% 268 9.1% __libc_pread64
>
> 175 5.9% 85.3% 175 5.9% __memmove_avx_unaligned_erms
>
> 58 2.0% 87.3% 58 2.0% epoll_wait
>
> 48 1.6% 88.9% 48 1.6% __memset_avx2_unaligned_erms
>
> 31 1.0% 90.0% 31 1.0% __recvmsg
>
> 15 0.5% 90.5% 120 4.1% ngx_quic_write_buffer
>
> 12 0.4% 90.9% 12 0.4% aesni_ctr32_encrypt_blocks
>
> 12 0.4% 91.3% 90 3.0% ngx_quic_create_frame
>
> 11 0.4% 91.7% 11 0.4% aesni_encrypt
>
> 8 0.3% 91.9% 24 0.8% EVP_CIPHER_CTX_ctrl
>
> 8 0.3% 92.2% 8 0.3% __strcmp_avx2
>
>
>
> Но теперь скорость значительно упала, примерно с ~400 Мбайт/сек до ~250.
>
>
>
Это ожидаемо, если накапливается 1 пакет, его дорого отправлять через
sendmmsg. Собственно, смысл проверки был в том, чтобы проверить,
действительно ли пакеты (в вашем случае) не успевают накапливаться
Вроде в настройках сетевой карты gso включен:
>
> tx-gso-robust: off [fixed]
>
> tx-gso-partial: on
>
> tx-gso-list: off [fixed]
>
>
>
>
> --
> С уважением,
> Izorkin mailto:izorkin на gmail.com
> <izorkin на gmail.com>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20240112/d3076215/attachment-0001.htm>
Подробная информация о списке рассылки nginx-ru