Welcome! Log In Create A New Profile

Advanced

Re: TCP Socket TIME_WAIT problem

Maxim Dounin
June 22, 2012 07:16AM
Hello!

On Fri, Jun 22, 2012 at 05:51:46AM -0400, andreabenini wrote:

> Hi folks,
> I'm deeply testing NGINX to understand boundaries and limits because I'd
> like to create a webservice for an high performance application in our
> LAN. I'm currently running NGINX 1.2.1 on Linux and I'm just serving a
> static webpage ("<html><body>Hello World</body></html>") to see
> performances. This website is accessed on localhost from a dummy bash
> script:
> #!/bin/bash
> for i in {0..50000}; do
> echo $i
> wget http://127.0.0.1/test.html -q -O - >> /dev/null
> done
>
> In other terminals I'm monitoring sockets and their status ( netstat -an
> |grep WAIT|wc -l )
> When I run the bash script I can see no troubles until I reach 28233
> TIME_WAIT connections, then it freezes for a while until some TIME_WAIT
> connections are closed. Performances are ok until I reach this limit,
> then everything is frozen for a while until TCP time_wait connections
> are disposed
> After few researches with google I've found these info:
> http://developerweb.net/viewtopic.php?id=2941
> http://developerweb.net/viewtopic.php?id=2982
>
> I'm running tests on a pretty fast machine: Intel core i7 with 8Gb RAM
> and a Gentoo Linux OS with kernel 3.12, is there a way to get a rid of
> this limit ? I'll post here my nginx.conf but please let me know if you
> need more info or config files

The problem you've hit is local port exhaustion on client side due
sockets in TIME_WAIT state. Possible solutions are:

1) Add more client local ports. Trivial way to do so is to add
more clients (or, rather, client IPs). You may also tune
single client to use wider local port range
(/proc/sys/net/ipv4/ip_local_port_range on linux), though it's
limited to 64k anyway.

2) Configure your system to reuse/recycle timewait sockets
(tcp_tw_reuse, tcp_tw_recycle in the same /proc/ directory on
Linux).

3) Reduce MSL as used on your system (no idea if it's tunable on
Linux), this will cause TIME_WAIT sockets to expire faster.

Maxim Dounin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

TCP Socket TIME_WAIT problem

andreabenini June 22, 2012 05:51AM

Re: TCP Socket TIME_WAIT problem

Maxim Dounin June 22, 2012 07:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 216
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready