[rabbitmq-discuss] Question on throughput with RabbitMQ-3.1.1

Simon MacMullen simon at rabbitmq.com
Tue Jun 25 14:16:12 BST 2013


Just from quickly scanning your script I notice that you are invoking:

         self.channel.confirm_delivery()

on every publish.

As far as I can see from the pika source code this will send 
confirm.select. That's a synchronous method, so you're incurring a 
network round trip per publish. That's almost certainly where all your 
performance is going. You're also not passing in a callback, so it's not 
really accomplishing anything client-side.

Cheers, Simon

On 25/06/13 14:07, Priyanki Vashi wrote:
> Hi ,
>
> By mistake I had attached a wrong producer in my previous  zip file so
> attaching the correct one now.
> Sorry for that but I have so many different files, which I have tried.
> So resending the zip files again with correct producer and consumer (I
> believe)
>
> //P
>
>
>
>
> On Tue, Jun 25, 2013 at 2:59 PM, Emile Joubert <emile at rabbitmq.com
> <mailto:emile at rabbitmq.com>> wrote:
>
>
>     Hi,
>
>     On 25/06/13 13:38, Priyanki Vashi wrote:
>
>      > I have very high end server with 20 CPUs and 120 GB of RAM so I think
>      > resources wise it's not the bottleneck.
>
>     And what about the network speed? I would still try an independent
>     bandwidth test from network to disk to give you a comparison reference.
>
>     The numbers you quoted are about 2 orders of magnitude lower than I
>     would expect for that hardware. Bear in mind that the queue process is
>     typically the most CPU-intensive process. A queue on a single server can
>     occupy at most one CPU, so will benefit more from a faster CPU than from
>     many CPUs.
>
>      > Did u and Tim received my scripts ?
>
>     Not yet, but hopefully someone who knows more about the Pika client than
>     me will be able to comment.
>
>      > I learnt that basic_consume is better choice than basic_get since
>     server
>      > will directly send messages to listening consumer without consumer
>      > polling it.
>
>     Yes, and the asynchronous choice is typically faster.
>
>
>     If you are still stuck with very low throughput then I would recommend
>     you try the MulticastMain utility, included in the RabbitMQ Java client.
>     It includes support for many of the options that you want to compare,
>
>
>
>     -Emile
>
>
>
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>


-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list