Re: Автоматическое увеличение sndbuf при EAGAIN
Maxim Dounin
mdounin на mdounin.ru
Вт Июн 20 15:12:35 UTC 2017
Hello!
On Tue, Jun 20, 2017 at 10:31:52AM -0400, Ilya Evseev wrote:
> >
> > В данном случае хороший ответ на этот вопрос не прослеживается,
> > так как автотюнинг буферов сейчас во всех популярных операционных
> > системах есть, в том числе на линуксе.
> >
>
> Автотюнинг буферов - это что именно?
>
> Есть sysctl net.ipv4.tcp_wmem с тремя значениями:
> минимально разрешенное, по умолчанию, максимально разрешенное.
>
> Но устанавливать значение, отличное от дефолтного, всё равно должен
> пользовательский
> процесс через setsockopt(SO_SNDBUF), ядро его никогда не пытается менять
> автоматически.
Нет. (c) Farid Vagapov
tcp_wmem - vector of 3 INTEGERs: min, default, max
min: Amount of memory reserved for send buffers for TCP sockets.
Each TCP socket has rights to use it due to fact of its birth.
Default: 1 page
default: initial size of send buffer used by TCP sockets. This
value overrides net.core.wmem_default used by other protocols.
It is usually lower than net.core.wmem_default.
Default: 16K
max: Maximal amount of memory allowed for automatically tuned
send buffers for TCP sockets. This value does not override
net.core.wmem_max. Calling setsockopt() with SO_SNDBUF disables
automatic tuning of that socket's send buffer size, in which case
this value is ignored.
Default: between 64K and 4MB, depending on RAM size.
(https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt)
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru