ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cокет в FIN_WAIT_1



On Fri, Oct 05, 2007 at 09:31:48PM +0400, Igor Sysoev wrote:

> On Fri, Oct 05, 2007 at 07:18:45PM +0400, Fyodor Ustinov wrote:
> 
> > Igor Sysoev пишет:
> > >On Fri, Oct 05, 2007 at 05:30:46PM +0300, MZ wrote:
> > >
> > >  
> > >>Ух ты, а я думал только ядро патчить поможет
> > >>А где опция появилась/описана ?
> > >>    
> > >
> > >Появилась давно, поэтому и не описано: все новые директивы описываются
> > >по мере появления.
> > >
> > >Если соединение закрывается по таймауту, то nginx закрывает соединение
> > >с включённой опцией SO_LINGER и временем, равным нулю. В результате
> > >ядро сразу же закрывает сокет, не переходя в FIN_WAIT_1/2 и TIME_WAIT.
> > >Все связанные с сокетом буфера освобождаются, а клиенту посылается RST.
> > >  
> > Странно. В конфиге параметр включил, nginx перегрузил. Тем не менее:
> > netstat -an | grep -ci wait_2
> > 910
> > 
> > netstat -an | grep -ci wait_1
> > 3165
> > 
> > netstat -an | grep -ci time_wait
> > 456
> 
> А было сколько ?
> 
> Вообще, полностью избавлятся от FIN_WAIT_1/2 нельзя, нужно избавлятся
> от бесполезных FIN_WAIT_1/2. У меня есть, например, такое:
> 
> netstat -an | grep -c ESTABLISHED
> 22835
> netstat -an | grep -c TIME_WAIT
> 9243
> netstat -an | grep -c WAIT_1
> 2468
> netstat -an | grep -c WAIT_2
> 2766

Вообще, наиболее контроллируемое поведение такое:

send_timeout              30s;     # менять по вкусу
keepalive_timeout         75  20;
reset_timedout_connection on;

FIN_WAIT_1/2 могут жить в ядре минутами. reset_timedout_connection
избавляет от этого.

Если соединение закрывает клиент, у нас нет WAIT.
Это позволяет сделать keepalive_timeout:
75 - через ~60 секунд MSIE закрывает соединение,
20 - через ~20 секунд Mozilla закрывает соединение.


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.