[rabbitmq-discuss] Memory watermark alert not resetting.
Simon MacMullen
simon at rabbitmq.com
Mon Oct 8 11:35:04 BST 2012
On 08/10/2012 9:57AM, Raviv Pavel wrote:
> Makes sense.
> I'm trying to reproduce with higher watermark by publishing messages,
> consuming them but not acking (this is what happened in production) but
> can't get the memory to go above the watermark.
You will eventually, but this may take quite a long time. RabbitMQ will
page messages to disc under memory pressure, this includes
consumed-but-unacked messages. But there is a small per-message cost for
messages in general, and a small per-message-per-queue cost for
consumed-but-unacked messages. So with enough messages this can add up
and block publishers.
> Can you explain or point me to an explanation of Rabbit's memory usage?
Nothing much is documented yet. We are working on this, along with
better memory use details in ctl / mgmt.
> Also, When hitting the watermark, the server seems to block the producer
> on the socket level, instead of sending a flow control message.
The flow control messages in the spec are unfortunately not very useful,
since they rely on the client taking notice of them in a timely way. In
practice this tends not to happen.
> Since
> the .Net SDK doesn't expose a send timeout, publishing is blocked forever.
> Any reason for not exposing such timeout?
I think since you could wrap it easily enough yourself this came down to
API complexity.
Cheers, Simon
More information about the rabbitmq-discuss
mailing list