[rabbitmq-discuss] Cluster Memory Usage
Cameron Davison
cameron.davison at gmail.com
Sun Nov 20 16:27:27 GMT 2011
Matthias,
On Nov 20, 2011, at 7:34 AM, Matthias Radestock <matthias at rabbitmq.com> wrote:
> Cameron,
>
> On 16/11/11 20:06, Cameron Davison wrote:
>> I have a cluster of 2 rabbitmq on 2 machines in the same datacenter.
>> I am sending messages to them at a rate of about 250 message a second
>> each message is about 2k in size on average. The software is able to
>> read them back out at about the same rate. Sometime slower usually
>> faster, which is why I am using a message queue. [...] There are
>> about 10 publishers channels/connections, and about 30 consumer
>> channels/connections. The prefetch is set to 1000 for each channel
>> of the consumers. [...] The cluster is using mirrored queue and
>> confirmations on the writes as well as batch acking on the consumes.
>
> Do all the queue masters reside on the same machine? Or perhaps there is just one queue (in which case the answer obviously is 'yes').
There is only one queue.
>
> Also, what machine do the publishers and consumers connect to?
All of the publishers and consumers connect to the master. We set them
to connect to the first one available, but since we restarted them in
order to get the memory to go once or twice they all ended up
connected to the master.
>
> Are the queues durable and the messages persistent?
Both persistent and durable. I set both in the cluster to be durable
since we have only one queue and did not expect to make anymore.
Seemed like it would not cause extra work to save the queue to disk. I
am using persistent and high available mirrored queues because I
really don't want to lose messages.
>
>> The master rabbitmq is reporting a memory usage by the erlang
>> processer of about 200MB and the slave rabbitmq is reporting around
>> 800MB but sometimes jumps back and forth between 400MB and 900MB
>> rapidly. Is there any reason that the memory usage is so different
>> between the master and the slave.
>
> The workload of the master and slave are quite different, so a difference in the memory profile is not surprising.
>
> Inspecting the memory details of the nodes with 'rabbitmqctl status', or with the management plug-in, might shed some light on where the memory is going.
>
It looks like all the memory is being used by the erlang processes.
Even though the slave has less then a fourth the processes and double
the memory.
>
> Regards,
>
> Matthias.
More information about the rabbitmq-discuss
mailing list