<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 12, 2024, 12:03  <<a href="mailto:izorkin@gmail.com" rel="noreferrer noreferrer" target="_blank">izorkin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">            <div><p>Добрый день, Илья.

</p><p></p><p><br></p><p>Первый вариант патча оказывается не рабочий, забыл применить:</p><p>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$
</p><p>        -o objs/src/http/ngx_http_file_cache.o \</p>
<p>        src/http/ngx_http_file_cache.c</p>
<p>src/event/quic/ngx_event_quic_output.c: In function 'ngx_quic_allow_segmentation':</p>
<p>src/event/quic/ngx_event_quic_output.c:249:36: error: variable 'len' set but not used [^[]8;;<a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-but-set-variable$" rel="noreferrer noreferrer noreferrer" target="_blank">https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-but-set-variable$</a></p>
<p>  249 |     size_t                  bytes, len;</p>
<p>      |                                    ^~~</p><p> </p><p>Сработал такой патч:</p><p>diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c</p><p>index 914d81921..27efc1950 100644</p><p>--- a/src/event/quic/ngx_event_quic_output.c</p><p>+++ b/src/event/quic/ngx_event_quic_output.c</p><p>@@ -303,7 +303,7 @@ ngx_quic_allow_segmentation(ngx_connection_t *c)</p><p>         }</p><p>     }</p><p> </p><p>-    return 0;</p><p>+    return 1;</p><p> }</p><p> </p><p>Теперь используется sendmmsg()</p><p>    1065  36.0%  36.0%     1065  36.0% _aesni_ctr32_ghash_6x</p><p>    1018  34.4%  70.4%     1018  34.4% __sendmmsg</p><p>     268   9.1%  79.4%      268   9.1% __libc_pread64</p><p>     175   5.9%  85.3%      175   5.9% __memmove_avx_unaligned_erms</p><p>      58   2.0%  87.3%       58   2.0% epoll_wait</p><p>      48   1.6%  88.9%       48   1.6% __memset_avx2_unaligned_erms</p><p>      31   1.0%  90.0%       31   1.0% __recvmsg</p><p>      15   0.5%  90.5%      120   4.1% ngx_quic_write_buffer</p><p>      12   0.4%  90.9%       12   0.4% aesni_ctr32_encrypt_blocks</p><p>      12   0.4%  91.3%       90   3.0% ngx_quic_create_frame</p><p>      11   0.4%  91.7%       11   0.4% aesni_encrypt</p><p>       8   0.3%  91.9%       24   0.8% EVP_CIPHER_CTX_ctrl</p><p>       8   0.3%  92.2%        8   0.3% __strcmp_avx2</p><p> </p><p>Но теперь скорость значительно упала, примерно с ~400 Мбайт/сек до ~250.</p><p> </p></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Это ожидаемо, если накапливается 1 пакет, его дорого отправлять через sendmmsg. Собственно, смысл проверки был в том, чтобы проверить, действительно ли пакеты (в вашем случае) не успевают накапливаться</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p>Вроде в настройках сетевой карты gso включен:</p><p>tx-gso-robust: off [fixed]</p><p>tx-gso-partial: on</p><p>tx-gso-list: off [fixed]</p><p> </p><p> </p><div>-- <br>
С уважением,<br>
 Izorkin                          <a href="mailto:izorkin@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">mailto:izorkin@gmail.com</a></div></div>_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" rel="noreferrer noreferrer noreferrer" target="_blank">nginx-ru@nginx.org</a><br>
<a href="https://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
</blockquote></div></div></div>