Re: nginxQuic: скорость загрузки при активации kTLS
Илья Шипицин
chipitsine на gmail.com
Пт Янв 5 18:53:45 UTC 2024
On Fri, Jan 5, 2024, 18:46 <izorkin на gmail.com> wrote:
> Добрый вечер, Илья.
>
>
> Разобрался в чём была проблема - медленная дисковая подсистема. Скопировал
> тестовый файл в tmpfs, результаты
>
> стали пропорционально результатам на физическом сервере.
>
>
>
> Результаты без поддержки kTLS:
>
> - HTTP/1.1 - ~251 Мбайт/сек (CPU load 100%)
>
> - HTTP/2 - ~207 Мбайт/сек (CPU load 100%)
>
> - HTTP/3 - ~259 Мбайт/сек (CPU load ~90%)
>
>
> Результаты c поддержкой kTLS:
>
> - HTTP/1.1 - ~603 Мбайт/сек (CPU load 100%)
>
> - HTTP/2 - ~171 Мбайт/сек (CPU load 100%)
>
> - HTTP/3 - ~260 Мбайт/сек (CPU load ~90%)
>
>
>
> Анализ профиля для протокола HTTP/3 без поддержки kTLS:
>
> Total: 2406 samples
>
> 843 35.0% 35.0% 843 35.0% __sendmsg
>
> 425 17.7% 52.7% 425 17.7% _aesni_ctr32_ghash_6x
>
> 406 16.9% 69.6% 406 16.9% pthread_cond_signal@@GLIBC_2.3.2
>
> 296 12.3% 81.9% 296 12.3% epoll_wait
>
> 91 3.8% 85.7% 91 3.8% __memmove_avx_unaligned_erms
>
> 55 2.3% 87.9% 55 2.3% __lll_lock_wake
>
> 29 1.2% 89.2% 29 1.2% __recvmsg
>
> 9 0.4% 89.5% 527 21.9% ngx_quic_output_packet
>
> 8 0.3% 89.9% 8 0.3% _init на 39000
>
> 8 0.3% 90.2% 74 3.1% ngx_quic_write_buffer
>
> 7 0.3% 90.5% 112 4.7% ngx_http_trailers_filter
>
> 6 0.2% 90.7% 16 0.7% EVP_CIPHER_CTX_ctrl
>
> ...
>
>
>
> Анализ профиля для протокола HTTP/3 с поддержкой kTLS:
>
> Total: 2392 samples
>
> 834 34.9% 34.9% 836 34.9% __sendmsg
>
> 457 19.1% 54.0% 457 19.1% pthread_cond_signal@@GLIBC_2.3.2
>
> 360 15.1% 69.0% 360 15.1% _aesni_ctr32_ghash_6x
>
> 278 11.6% 80.6% 278 11.6% epoll_wait
>
> 104 4.3% 85.0% 104 4.3% __memmove_avx_unaligned_erms
>
> 65 2.7% 87.7% 65 2.7% __lll_lock_wake
>
> 49 2.0% 89.8% 49 2.0% __recvmsg
>
> 12 0.5% 90.3% 634 26.5% ngx_output_chain
>
> 8 0.3% 90.6% 8 0.3% gcm_ghash_avx
>
> 7 0.3% 90.9% 7 0.3% __strcmp_avx2
>
> 6 0.3% 91.1% 6 0.3% aesni_encrypt
>
> 6 0.3% 91.4% 7 0.3% evp_cipher_init_internal
>
> 6 0.3% 91.6% 398 16.6% gcm_cipher_internal
>
> 5 0.2% 91.8% 8 0.3% __GI___clock_gettime
>
> ...
>
>
>
> Получается, что для HTTP/3 активация kTLS не ускоряет работу (например,
> если файлы находятся в кэше nginx). Ех...
>
>
>
С некоторой непонятностью, что именно означают проценты, но выглядит так,
что процессор (при выбранном типе нагрузки) нагружается не SSL -ным. Для
такой нагрузки даже, если бы kTLS умело в UDP, оно бы не повлияло.
epoll_wait оно бы ускорило? Сомневаюсь
>
> Вы писали 5 января 2024 г., 0:37:11:
>
>
>
> осторожно предположу, что в случае 100% утилизации cpu epoll себя так
> ведет.
> попробуйте донагрузить процессор чем-то типа "md5sum /dev/zero", чтобы
> максимально занять ядра, во всех ли случаях профили покажут epoll_wait ?
>
>
>
> Инфраструктура Fideverse, в которую входит микро-блог Mastodon работает
> немного по другому. Это можно представить как большое количество
>
> почтовых ящиков, которые работают на различном ПО и обмениваются между
> собой сообщениями. Большинство запросов выполняются по HTTP/1.1
>
> протоколу.
>
> Любой желающий может поднять инстанс и ощаться с остальной сетью. Там есть
> и представители разных ПО :)
>
>
>
>
>
> Вы писали 5 января 2024 г., 0:46:49:
>
>
>
> возможно, часть запросов проксируется через инфраструктуру Mastodon, и для
> вас выглядит как http/1.1
>
> Если так подумать, то смысла выключать скорее всего нет.
>
>
>
> риторический вопрос, если к вам 90% трафика приходит как http/1.1, и вы с
> этим ничего не можете поделать судя по всему, в чем смысл вопроса "включать
> или на включать http/{2,3}" ?
>
>
>
>
> --
> С уважением,
> 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/20240105/ed09bfd6/attachment-0001.htm>
Подробная информация о списке рассылки nginx-ru