[rabbitmq-discuss] ERL crashes when messages are being pumped into a queue under win32 envir
    Emile Joubert 
    emile at rabbitmq.com
       
    Thu Mar 31 16:25:40 BST 2011
    
    
  
Hi Ming,
On 30/03/11 10:40, Ming Li wrote:
> 1.using RabbitMQ2.4.0(windows bundle).winxp,creates an exchange and a queue.
>
> 2.use multiple sender to send messages into the created queue,only a
> single receiverreceiving message from the same queue.
>
> 3.while running, what i discovered is that the ERL's RAM usage continue
> to increase and then crash when it reaches a certain percentage
>
> Is there a way to prevent it from crashing?
Are you sure it's the broker that runs out of memory and not the 
receiver? Is the receiver and the rabbit broker running on the same 
hardware?
I see that the channel is not setting QoS. This will cause the broker to 
deliver messages to the receiver QueueingBasicConsumer as quickly as it 
can, and the receiver could run out of memory as a result. This is more 
likely to occur if the consumer is slower than the sender. The solution 
to this problem is to set the QoS prefetch count (IModel.BasicQos) to a 
small number and use explicit acknowledgements.
If it really is the broker that runs out of memory could you confirm 
whether the broker logfile contains entries with both "alarm_handler" 
and "vm_memory_high_watermark"? What else appears in the broker logfile 
near the time of the crash?
-Emile
    
    
More information about the rabbitmq-discuss
mailing list