[rabbitmq-discuss] CPU usage with RabbitMQ 1.7
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