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