lots of connections on TIME_WAIT state

Igor Sysoev is at rambler-co.ru
Wed Apr 8 12:09:55 MSD 2009


On Wed, Apr 08, 2009 at 10:47:16AM +0300, Artis Caune wrote:

> 2009/4/7 Deepan Chakravarthy <codeshepherd at gmail.com>:
> > Hi,
> >   I am using nginx with fast-cgi .  When I run
> > $netstat -np | grep 127.0.0.1:9000
> > I find lot of connections in TIME_WAIT state. Is this because of high
> > keepalive_timeout value ?   When lot of people use (5 requests per second)
> >  nginx takes more  time to respond. System load goes more than 10 during
> > peak hours.
> 
> This is because of how TCP works.
> 
> 
> > debian:~# netstat -np | grep 127.0.0.1:9000
> > tcp        0      0 127.0.0.1:9000          127.0.0.1:45603
> > TIME_WAIT  -
> > tcp        0      0 127.0.0.1:9000          127.0.0.1:45601
> > TIME_WAIT  -
> 
> 
> If you were on FreeBSD, you could disable TIME_WAIT on loopback
> completely by setting:
> 
>     sysctl net.inet.tcp.nolocaltimewait=1

Due to the incorrect implementation this remedy is worse than the disease.
The net.inet.tcp.nolocaltimewait relys on unlimited RST delivery, therefore
if there are too many RSTs, they will be limited by net.inet.icmp.icmplim
and you will have a lot of sockets in the LAST_ACK state on server side
instead of lot of sockets in the TIME_WAIT on client side.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list