[rabbitmq-discuss] RabbitMQ 1.7.2 with Erlang R13B04 crashes after several hours running MulticastMain from 1.7.2

Matthew Sackman matthew at lshift.net
Fri Apr 2 17:01:14 BST 2010


Hi John,

On Thu, Apr 01, 2010 at 04:58:57PM +0200, John Apps wrote:
> Wondering why this crashes when vm_memory_high_watermark is set?
> 
> This message "vm_memory_high_watermark set. Memory used:935,079,976
> allowed:858,993,459" is rather intriguing, or am I missing something? (The
> commas were inserted by me in order to make the number more legible.)

When Rabbit raises its alarms, it does not mean that it'll stop using
more memory. It will raise channel.flow to the client, but it can take
some time for the client to respond to that, and in the meantime, the
client can continue to send more messages in. At the moment we do not
drop such messages on the floor, but it's something that we have been
looking at.

Furthermore, Erlang's GC can mean that substantially more memory can be
used by the Erlang process than the (artificial) threshold at which we
raise channel.flow.

> Thu Apr 01 15:22:19 2010
> Slogan: eheap_alloc: Cannot allocate 153052320 bytes of memory (of type
> "heap").
> System version: Erlang R13B04 (erts-5.7.5) [smp:2:2] [rq:2]
> [async-threads:30]
> Compiled: Mon Feb 22 20:02:36 2010

Interesting. It's asking for 153MB and apparently Windows said "no" to
it. Was there really no free memory available for Windows? Have you
disabled the page file? 

The "Memory limit set to 819MB." shows that rabbit really did detect
4GB of Ram in there, which is interesting for a Windows system - it
suggests you're running a 64-bit Erlang. If you just start up erl, and
type in:

os:type().
erlang:system_info(wordsize).

Also, if you start up rabbit, and in the rabbit shell, type:

vm_memory_monitor:get_total_memory().

what results do you get?

Matthew




More information about the rabbitmq-discuss mailing list