[rabbitmq-discuss] Memory usage and total allowed connections
tim at rabbitmq.com
Tue Mar 19 09:50:06 GMT 2013
On 18 Mar 2013, at 20:25, Prabodh Upreti wrote:
> I have a system with 8G RAM. I have set the vm_memory_high_watermark to .1
> hence around 800K mem to play with I believe.
> I am getting questioned how many concurrent connections can I support in
> this environment. I am going with the assumption that each connected user
> is only going to create a single temporary queue. I believe the overhead for
> a temporary queue is 4k. There is very little events flowing through the
> system. What would be a reasonable number to say for total number of users
> that can be support in this environment? I know there are various factors
> and accurate answer is not possible.
I think the best thing for you to do here is to use the MulticastMain class that ships with the java client to run some tests and investigate yourself, based on the kind of usage you're expecting to see in production. There are memory overheads for queues/exchanges/etc, and also for messages flowing through the system (though messages larger than 64bytes will be shared across all parts of the system due to Erlang's use of a shared heap for 'large' binaries), and even when messages hit the disk, there is some overhead for in-memory indexes etc. Also each TCP connection will cost something too, and the space usage will vary depending on how busy various Erlang processes are and whether or not they're able to go into hibernation and so on.
> Maybe 100 users? I would appreciate your input. Thank you.
Personally I would expect a bit more than that if system isn't busy - you said "There is very little events flowing through the system" after all - but you should experiment and see. Matthias and/or Simon may have better (or more specific) figures to share based on their experience over the years, but in any case measuring system performance with realistic samples before going in to production is a *very good* habit for you to get into! :)
More information about the rabbitmq-discuss