[rabbitmq-discuss] CPU usage with RabbitMQ 1.7

Matthias Radestock matthias at lshift.net
Mon Oct 19 11:58:19 BST 2009


Sylvain Hellegouarch wrote:
> We've been stress testing our infrastructure recently and we've been 
> surprised to notice that RabbitMQ was really hungry in memory (which is 
> more or less okay if we the OS gets it back eventually) but also in CPU.
> Our messages are about 100 bytes each and our consumer isn't as fast as 
> our producer (though it is very capable in our book) but we have 
> difficulties understanding why Rabbit is so CPU bound.
> We were also feeling that the queue isn't filled as fast as the exchange 
> (topic) and Rabbit seems to feed the queues on demand based on the 
> consumer speed. Is it a valid description of what happens or is it a 
> false observation on our part?

Could you describe your test set up in more detail?

- What clients are you using?
- What is the routing topology, i.e. the numbers of producers,
consumers, exchanges, queues and bindings and how they are "wired up"?
- Are the messages marked as persistent?
- Do producers or consumers use transactions?
- Do consumers consume message with basic.consume or basic.get?
- Do consumers operate in auto-ack or normal, ack'ing mode?
- What do the producers do? Send messages in tight loop?
- How are you measuring speed?
- What hardware, O/S and version of Erlang are you running?

If you could post the test code that would be ideal. Assuming it's
self-contained and well-factored ;)

It may also be worthwhile to compare your results with what you get from
the MulticastMain example program in the Java client.


More information about the rabbitmq-discuss mailing list