[rabbitmq-discuss] RabbitMQ scaling with OpenStack
pekowski at gmail.com
Wed Jan 23 16:43:04 GMT 2013
On Sat, Jan 19, 2013 at 11:47 PM, Ray Pekowski <pekowski at gmail.com> wrote:
> Some possible things that could make the results lower than you would
> expect are:
> 1) All machines are virtual machines, including the RabbitMQ servers.
> Virtualization typically costs around 40%.
> 2) All VMs were only assigned 2 CPUs. The CPUs are Intel Xeon E5620 @ 2.4
> I forgot to mention some other possible reasons:
3) OpenStack RPC implementation over AMQP (RabbitMQ and Qpid) sends two
messages for each reply. This means there are three messages sent per RPC,
one for the request and two for the reply.
The effective rate in terms of RabbitMQ message/sec for the cluster of
three RabbitMQ servers and mirroring enabled and the OpenStack patch to use
a single queue per process for the reply is 812 X 3 ~= 2400 msg/sec, which
might still be considered low but perhaps the 2 CPU VMs per RabbitMQ server
is the biggest reason for this.
4) The OpenStack RPC producers re-declare the queues and exchanges upon
which they send messages. I say re-declare, because under normal
circumstances in the OpenStack implementation, the consumers exist before
the producers and so have already declared/created the exchanges and
queues. I think this is done in case an RPC call is made to a service that
isn't up at the time. I wonder that is a good practice, but I may be
missing some other reason for it. I might play around with prototyping a
removal of the producer side re-declares.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss