Reputation: 729
I'm fairly new to RabbitMQ and am planning on writing a few tests to understand how the message system in RabbitMQ scales with the number of exchanges used. In particular I'm curious to see how increasing N exchanges will affect the CPU, Memory and IO usage.
I've noticed that RabbitMQ ships with a rabbitmqct1.bat application which has a status command that'll output system related information. The issue I'm having is deciding when in the messaging cycle to run the benchmarking utility.
Should i be running it as I'm publishing messages to the exchanges? Or running it as I bind queues to the exchange(s)? Or as messages get pushed from the exchanges to the queues?
Cheers.
Upvotes: 0
Views: 265
Reputation: 3118
You will probably find the web management plugin the easiest way to view the current performance of your system. Once again, take a look at Routing Topologies for Performance and Scalability with RabbitMQ which I linked to in another one of your questions.
It's worth thinking about the variables in your testing:
It's also worth noting that queue performance drops when there are no consumers of the queue, so if it is steadily growing then performance will drop off, a RabbitMQ queue will ideally always be at (or near) 0 messages.
A few helpful links:
RabbitMQ Performance Measurements, part 1
RabbitMQ Performance Measurements, part 2
Upvotes: 1