>
> В данном случае хороший ответ на этот вопрос не прослеживается,
> так как автотюнинг буферов сейчас во всех популярных операционных
> системах есть, в том числе на линуксе.
>
Автотюнинг буферов - это что именно?
Есть sysctl net.ipv4.tcp_wmem с тремя значениями:
минимально разрешенное, по умолчанию, максимально разрешенное.
Но устанавливать значение, отличное от дефолтного, всё равно должен пользовательский
процесс через setsockopt(SO_SNDBUF), ядро его никогда не пытается менять автоматически.
>
> И не совсем понятно, зачем пытаться изобретать свой собственный.
>
Сейчас получается два цикла отправки - внутри ядра, и когда\если ядерный буфер переполнен, то внутри Nginx'a вокруг EAGAIN.
Когда Nginx попадает в такой цикл, резко взлетают CPU Usage и Load Average.
Если Nginx в этой ситуации просто увеличит системный буфер, чтобы ответ поместился в него целиком, то всю работу по отправке возьмёт на себя ядро, а Nginx сможет об этом просто забыть.