Nginx gets halt on 15K connections !!

shahzaib shahzaib shahzaib.cb at gmail.com
Fri May 8 13:15:59 UTC 2015


Hi Valentine,


>>What's really important is the connections that nginx cannot close.  The
active ones.
How long the connection is active depends on the request processing time.


  Thanks for pointing that to me. Nginx serving around 800Mb of mp4 files
but the problem is we're unable to track request processing time. Could you
please let us know some method/command to find how long the connection
remains active during request being  process ?

Though, one thing is for sure, increasing worker_connections resolved our
problem. Current connections setting is quite high but working well to
entertain large number of connections with 900Mbps outward traffic. Here's
our workers and connections settings:


worker_processors 48;
worker_connections 102400;

Regards.
Shahzaib

On Fri, May 8, 2015 at 6:05 PM, Valentin V. Bartenev <vbart at nginx.com>
wrote:

> On Thursday 07 May 2015 18:38:23 shahzaib shahzaib wrote:
> > Hi,
> >
> >   It looks like we made the false calculation based on entertaining
> > concurrent connections per seconds and worker_connections limit was set
> to
> > be very low. I've increased this limit to 16000 and issue looks to be
> > fixed. Here's the mechanism i used to calculate concurrent
> connections/sec:
> >
> >  worker_processes * worker_connections / keepalive_timeout == concurrent
> > connections per second
> >
> > Concurrent connections on our server is around 15K . Based on this i used
> > the following values :
> >
> >  48 * 16000 / 15 == 51200/sec
> >
> > Can somebody point to me if the calculation method is false ?
> >
> [..]
>
> It's false.
>
> The keepalive_timeout has nothing to do with the concurrent connections
> per second.
> In fact, nginx can close an idle connection at any time when it reaches
> the limit
> of worker_connections.
>
> What's really important is the connections that nginx cannot close.  The
> active ones.
> How long the connection is active depends on the request processing time.
>
> The approximate calculation looks like this:
>
>  worker_processes * worker_connections * K / average $request_time
>
> where K is the average number of connections per request (for example, if
> you do proxy
> pass, then nginx needs additional connection to your backend).
>
>   wbr, Valentin V. Bartenev
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20150508/b280576f/attachment.html>


More information about the nginx mailing list