[rabbitmq-discuss] Simple benchmark and results

Matthias Radestock matthias at lshift.net
Thu Oct 22 15:17:23 BST 2009


David Glaubman wrote:
> You write:
> [...]
>> Note that there is one obvious difference to the .net tests: 
>> By setting the "-a" flag the consumers will operate 
>> in auto-ack mode, whereas in the .net code you posted you do an explicit
>> ack. 
>> The former is quite a bit more efficient and may well account 
>> for the bulk of the difference between the .net and java consumer
>> performance. 
> Bingo! Setting 'noAck' = true on basicConsume increases messages received to
> about 33K per sec.

I have just run some experiments with code very similar to yours - the
only significant changes I made was to set the message to be a byte[24]
array, use DateTime.Now for timing and do 50,000 iterations, i.e.

            var publishStart = DateTime.Now;
            for (int i = 0; i < 50000; i++) {
                channel.BasicPublish(exchange, routingKey, null, message);
            Console.WriteLine("publish: {0}", DateTime.Now - publishStart);

In the local case I get sending rates of ~10kHz on my ancient machine
running mono on debian. That's significantly higher than the ~4kHz you
are reporting.

The consuming rate is half that but increases to ~15kHz with nAck=true.

So something weird is going on in your set up.



More information about the rabbitmq-discuss mailing list