How can I change the limit on the number of Socket Descriptors? (Windows Server 2012)

891 views
Skip to first unread message

Keith Sohl

unread,
Nov 11, 2016, 9:38:34 AM11/11/16
to rabbitmq-users
Hi,

We have been experimenting with the file descriptor limit in a test instance of RabbitMQ. We have set the File Descriptor limit to 65536, and can see through the Management Plugin that the upper limit for Socket Descriptors has risen correspondingly to 58890:


We then wrote a small C# console app which uses the RabbitMQ.Client package to create up to 70k connections to RabbitMQ in a loop. 


Several instances of this were run on the test server itself. After approximately 16,350 connections we seem to reach a limit on the total number of connections, which point the client began to raise RabbitMQ.Client.Exceptions.BrokerUnreachableExceptions.


We ran "net config server" on the machine to confirm the number of available sockets per session;


C:>net config server

<snipped>

Maximum Logged On Users               16777216

Maximum open files per session        16384

<snipped>

The command completed successfully.


This says to us that the number of open connections to RabbitMQ running on our server is currently bound by this upper limit.  This seems rather low so we are hopeful that the RabbitMQ community has hit this problem before and can provide some assistance.


So the two-part question is; 


1. Is there a way to change this limit on Windows Server 2012?

2. If that is a fundamental, unchangable limit, what have other RabbitMQ users done in the past to work past this? (One solution springs to mind; implement a cluster of RabbitMQs with a load balancer in front, but will this help and is it the only option?)


Many thanks in advance for any advice you can provide.


Keith Sohl




Michael Klishin

unread,
Nov 11, 2016, 9:42:59 AM11/11/16
to rabbitm...@googlegroups.com, Keith Sohl
This is a Windows question more than a RabbitMQ one. RabbitMQ cannot bypass the limits
enforced by the OS.

May I recommend that you DO NOT limit the file handle limit. In fact, bump it to 300K or more
and forget about it. Running out of file descriptors leads to bad things™ such as:

 * Inability to accept client connections
 * Inability to create files on disk (and thus create data segment files, internal DB tables, etc)

Having the limit around 300 or 500K is really really cheap in terms of memory and having
a high limit is absolutely worth doing if you ask me.

On 11 November 2016 at 17:38:37, Keith Sohl (keit...@gmail.com) wrote:
> Hi,
>
> We have been experimenting with the file descriptor limit in a test
> instance of RabbitMQ. We have set the File Descriptor limit to 65536, and
> can see through the Management Plugin that the upper limit for Socket
> Descriptors has risen correspondingly to 58890:
>
>
>
>
> We then wrote a small C# console app which uses the RabbitMQ.Client package
> to create up to 70k connections to RabbitMQ in a loop.
>
>
> Several instances of this were run on the test server itself. After approximately
> 16,350 connections we seem to reach a limit on the total number of
> connections, which point the client began to raise
> RabbitMQ.Client.Exceptions.BrokerUnreachableExceptions.
>
>
> We ran "net config server" on the machine to confirm the number of
> available sockets per session;
>
>
> C:>net config server
>
>
>
> Maximum Logged On Users 16777216
>
> Maximum open files per session 16384
>
>
>
> The command completed successfully.
>
>
> This says to us that the number of open connections to RabbitMQ running on
> our server is currently bound by this upper limit. This seems rather low
> so we are hopeful that the RabbitMQ community has hit this problem before
> and can provide some assistance.
>
>
> So the two-part question is;
>
>
> 1. Is there a way to change this limit on Windows Server 2012?
>
> 2. If that is a fundamental, unchangable limit, what have other RabbitMQ
> users done in the past to work past this? (One solution springs to mind;
> implement a cluster of RabbitMQs with a load balancer in front, but will
> this help and is it the only option?)
>
>
> Many thanks in advance for any advice you can provide.
>
>
> Keith Sohl
>
>
>
> --
> You received this message because you are subscribed to the Google Groups "rabbitmq-users"
> group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
> To post to this group, send an email to rabbitm...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

--
MK

Staff Software Engineer, Pivotal/RabbitMQ


Reply all
Reply to author
Forward
0 new messages