tcp_nodelay on;

Maxim Dounin mdounin at mdounin.ru
Fri Apr 24 18:25:47 MSD 2009


Hello!

On Fri, Apr 24, 2009 at 05:44:33PM +0400, Михаил Монашёв wrote:

> Здравствуйте, Игорь.
> 
> >> Имеет ли смысл писать в конфиге
> >> 
> >> tcp_nodelay on;
> >> 
> >> если на машине огромный сетевой трафик?
> >> 
> >> Как я понимаю, delay, если и будет, то скорее всего минимальный.
> 
> IS> Это уже дефолт. А delay появляется в keepalive.
> 
> Как  я  понимаю, tcp_nodelay on работает так: в сокет пишутся данные и
> они  тут  же  отправляются.  Если  tcp_nodelay off, то данные пишутся,
> немного  ждётся,  не поступят ли ещё данные, и потом они отправляются,
> если  данных  становится  больше, чем mtu, или если наступает таймаут.
> Т.е.  при  tcp_nodelay  off  в  теории  должно  сокращаться количество
> пакетов  в  сети  (что на большом трафике хорошо), но будут появляться
> небольшие задержки, которые тюнятся через sysctl. Я всё верно написал,
> или что-то напутал?

Да.  Но поскольку nginx использует внутреннюю буферезацию и не 
отправляет в сеть пакеты меньше postpone_output (1460 байт по 
умолчанию), то особого смысла отключать tcp_nodelay не имеет.  

Maxim Dounin





More information about the nginx-ru mailing list