[rabbitmq-discuss] msg_store_transient usage question

Simon MacMullen simon at rabbitmq.com
Thu Sep 26 09:39:53 BST 2013


On 26/09/2013 4:37AM, Peter Wright wrote:
> i was hoping someone could help explain to me under what circumstances
> messages are written to the msg_store_transient directory.  i have been
> witnessing this directory grow to 10's of GB - infact it spun out of
> control at one point consuming almost 100G of space.  i do have a queue
> with quite a few messages ready for consumption, yet when i monitor
> memory utilization for this queue it rarely spikes above 20MB.

The memory use reported by the queue does not include message bodies 
(since these are shared across queues). Also it does not include 
anything that's been paged out, so if messages are paging out it can be 
quite low anyway.

The decision as to whether to page messages is made globally based on 
how much memory is in use. All released versions of RabbitMQ (since 
2.0.0 when the persister was rewritten) will start to page out when 20% 
of the way to the high watermark. By default the high watermark is at 
40% of physical memory, so paging will start at 8% memory used.

That's probably too cautious, so the next release (3.2.x) will raise the 
paging ratio from 20% to 50% (so paging will start at 20% memory used by 
default) and also make it configurable. See 
http://next.rabbitmq.com/memory.html#memsup-paging

Having said that, if msg_store_transient grows to 100GB of space, I 
suspect you probably have 100GB of messages. If you don't have 100GB of 
RAM, you're going to page out...

Hope this helps.

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list