June 20, 2017 10:31AM
>
> В данном случае хороший ответ на этот вопрос не прослеживается,
> так как автотюнинг буферов сейчас во всех популярных операционных
> системах есть, в том числе на линуксе.
>

Автотюнинг буферов - это что именно?

Есть sysctl net.ipv4.tcp_wmem с тремя значениями:
минимально разрешенное, по умолчанию, максимально разрешенное.

Но устанавливать значение, отличное от дефолтного, всё равно должен пользовательский
процесс через setsockopt(SO_SNDBUF), ядро его никогда не пытается менять автоматически.

>
> И не совсем понятно, зачем пытаться изобретать свой собственный.
>

Сейчас получается два цикла отправки - внутри ядра, и когда\если ядерный буфер переполнен, то внутри Nginx'a вокруг EAGAIN.

Когда Nginx попадает в такой цикл, резко взлетают CPU Usage и Load Average.

Если Nginx в этой ситуации просто увеличит системный буфер, чтобы ответ поместился в него целиком, то всю работу по отправке возьмёт на себя ядро, а Nginx сможет об этом просто забыть.
Subject Author Posted

Автоматическое увеличение sndbuf при EAGAIN

Ilya Evseev June 19, 2017 01:55PM

Re: Автоматическое увеличение sndbuf при EAGAIN

Maxim Dounin June 19, 2017 02:58PM

Re: Автоматическое увеличение sndbuf при EAGAIN

Ilya Evseev June 20, 2017 10:31AM

Re: Автоматическое увеличение sndbuf при EAGAIN

Maxim Dounin June 20, 2017 11:14AM

Re: Автоматическое увеличение sndbuf при EAGAIN

Ilya Evseev June 20, 2017 12:36PM

Re: Автоматическое увеличение sndbuf при EAGAIN

Maxim Dounin June 20, 2017 01:42PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 240
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready