[erlang-questions] Cowboy , Concurrency , Tuning

AD <>
Wed Oct 10 12:32:42 CEST 2012


Thanks Loic.  Any reason why websocket connections are not counted ?  is
there a separate pool for max_connections for websockets?

On Wed, Oct 10, 2012 at 4:36 AM, Loïc Hoguin <> wrote:

> On 10/10/2012 04:02 AM, AD wrote:
>
>> hello,
>>
>
> Hey,
>
>
>    I currently have a SockJS websocket implementation sitting on top of
>> cowboy.  We have been going through some tuning/concurrency testing and
>> we have improved our results drastically by increasing
>>
>> ERL_MAX_PORTS to 64000
>> +P parameter to a very high number , around 128000
>> Kernel tuning
>>
>>   With this config on a medium VM we have been able to successfully get
>> to around 60,000 connections, up from 4096 so we are headed in the right
>> direction :-)
>>
>
> Well then with the above configuration you're at about the maximum
> concurrent connections you can get. If you increase ERL_MAX_PORTS and +P
> even more Cowboy shouldn't have any trouble giving you even better results.
>
>
>    MY next question is with Cowboy tuning.  I notice that the default
>> max_connections parameter on the TCP transport is 1024 if not set, but I
>> am not hitting this issue.  What is the right way to tune NBAcceptor
>> pool and the the max_connections setting for the acceptor ?
>>
>
> NBAcceptor shouldn't be too low but shouldn't be too high either. I found
> 100 to be a good values but it really depends on how many connections come
> at once, how many cores you have, how many concurrent connections you
> expect, and so on.
>
>    Right now my start_listener is simply
>>
>> cowboy:start_listener(my_http_**listener, 200,
>>       cowboy_tcp_transport, [{port, ?COWBOY_HTTP_PORT}],
>>       cowboy_http_protocol, [{dispatch, Routes}]
>>      ).
>>
>> but i have seen some examples with
>>
>> cowboy:start_listener(my_http_**listener, 200,
>>       cowboy_tcp_transport, [{port, ?COWBOY_HTTP_PORT},
>> */{max_connections, infinity}/* ],
>>       cowboy_http_protocol, [{dispatch, Routes}]
>>      ).
>>
>
> If you're using Cowboy 0.6.1 or below and looking for performance, you
> should set max_connections to infinity. If you're using master, you can let
> it at the default value.
>
> Websocket connections are not counted in that number. All HTTP connections
> are though, so you might want to look at cowboy_listener to see how to
> remove the connection from the count (varies depending on your version).
>
> --
> Loďc Hoguin
> Erlang Cowboy
> Nine Nines
> http://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121010/6a6b2457/attachment.html>


More information about the erlang-questions mailing list