[rabbitmq-discuss] Producers hanging when reaching high memory watermark on 1.8.1

Matthias Radestock matthias at rabbitmq.com
Mon Aug 16 15:44:07 BST 2010


On 16/08/10 15:29, Aaron Westendorf wrote:
> On Sun, Aug 15, 2010 at 11:05 PM, Matthias Radestock
> <matthias at rabbitmq.com>  wrote:
>> In some setups a higher threshold may be safe, but disabling flow control
>> altogether is not advisable.
> Could you elaborate on this a little more?  With enough disk and the
> latest kernels, it seems that Linux will page Erlang correctly even if
> its memory usage nears the quantity of RAM.

If you can live with the massive performance degradation that swapping 
entails, and have plenty of swap configured, then disabling rabbit's 
memory monitoring is a viable alternative.

Though once the new persister is released, I don't see what you'd be 
gaining with that. The new persister provides a much more sophisticated 
and performant swapping mechanism than the kernel can provide.

> Things will be slow for sure, but in a shared
> environment, we'd rather address the few mis-behaving clients than
> shift the burden of memory management to all of our clients, which is
> effectively what pausing client publishing is doing.

Once rabbit starts swapping, clients will experience pauses in 
publishing anyway, through TCP backpressure.

By "shifting the burden of memory management" do you mean "having to 
deal with the channel.flow message"? The AMQP client library should take 
care of that.



More information about the rabbitmq-discuss mailing list