[rabbitmq-discuss] chan.flow and vm_memory_high_watermark

Simon MacMullen simon at rabbitmq.com
Wed Jun 9 17:15:30 BST 2010


On 09/06/10 16:12, Nicolás César wrote:
> Is there any other way to checkit?  Is there a way to get a memory dump
> from the vm to see whats going on?

Well, there's erlang:memory/0.

If you're using the Debian packages, type:

$ sudo -u rabbitmq -H erl -remsh rabbit@`hostname` -sname foo

to establish a connection to the RabbitMQ Erlang process then at the 
Erlang prompt:

memory().

to give some high level statistics about what's using memory.

Other things to think about:

* Are you using the most recent Erlang? (R13B04) GC has improved recently.

* Are you stopping the queues from hibernating? If you've written 
something like a shell script to repeatedly invoke rabbitmqctl 
list_queues this will keep the queue processes from hibernating which in 
turn stops them from GCing on hibernate. If queues are busy this is not 
a problem as they also GC every (n) reductions, but if they're 
almost-but-not-quite idle it can be a problem. It doesn't have to be a 
shell script, anything that means the queues never get 10 seconds or so 
idle.

Cheers, Simon


More information about the rabbitmq-discuss mailing list