Hi,

I'm fairly new to rabbitMQ - one of the tests I did was to read 1000
messages from rabbitMQ server running locally vs. reading 1000 messages from
another server (using .NET client).

Performance was approx 1000 per second connecting from the same server, vs
approx 200 p/s connecting from another server (single-node broker).

The IConnection and IModel were instantiated once and reused (I assume this
is best practice).

What would the bottlekneck be here that's limiting the reads to 200 p/s? My
guess would be the network hardware.

Are there any tricks with setting up or connecting to minimise read times?

And what sort of performance benefits can there usually be realized for
every node added to a cluster?


thanks
Ashley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090429/198f717a/attachment.htm

Search Discussions

  • Matthias Radestock at Apr 29, 2009 at 9:21 pm
    Ashley,

    Ashley van Gerven wrote:
    I'm fairly new to rabbitMQ - one of the tests I did was to read 1000
    messages from rabbitMQ server running locally vs. reading 1000 messages
    from another server (using .NET client).

    Performance was approx 1000 per second connecting from the same server,
    vs approx 200 p/s connecting from another server (single-node broker).

    What would the bottleneck be here that's limiting the reads to 200 p/s?
    My guess would be the network hardware.
    What network bandwidth do you have?

    And how exactly are you reading messages?
    Are there any tricks with setting up or connecting to minimise read times?
    Are you using basic.get? If so then the throughput will be determined by
    the network latency, since basic.get incurs a full network round-trip
    per message. To avoid that use basic.consume to set up asynchronous
    "push" delivery that streams messages to the client.
    And what sort of performance benefits can there usually be realized for
    every node added to a cluster?
    That very much depends on your routing topology. At one extreme, if you
    have a single producer sending messages to a single consumer then adding
    nodes will not help at all. At the other extreme, if you have many
    disjoint streams then near-linear scalability is achievable.


    Regards,

    Matthias.
  • Ashley van Gerven at Apr 30, 2009 at 4:12 am
    Matthias



    It's a 100Mbps network.



    The messages are retrieved like this:

    -----

    BasicGetResult result = ch.BasicGet("tempQ", false);

    ch.BasicAck(result.DeliveryTag, false);

    -----



    I'll try out your suggested alternate method of basic.consume.



    Thanks for the info



    Cheers

    Ashley


    On Thu, Apr 30, 2009 at 7:21 AM, Matthias Radestock wrote:

    Ashley,

    Ashley van Gerven wrote:
    I'm fairly new to rabbitMQ - one of the tests I did was to read 1000
    messages from rabbitMQ server running locally vs. reading 1000 messages from
    another server (using .NET client).

    Performance was approx 1000 per second connecting from the same server, vs
    approx 200 p/s connecting from another server (single-node broker).

    What would the bottleneck be here that's limiting the reads to 200 p/s? My
    guess would be the network hardware.
    What network bandwidth do you have?

    And how exactly are you reading messages?

    Are there any tricks with setting up or connecting to minimise read times?
    Are you using basic.get? If so then the throughput will be determined by
    the network latency, since basic.get incurs a full network round-trip per
    message. To avoid that use basic.consume to set up asynchronous "push"
    delivery that streams messages to the client.

    And what sort of performance benefits can there usually be realized for
    every node added to a cluster?
    That very much depends on your routing topology. At one extreme, if you
    have a single producer sending messages to a single consumer then adding
    nodes will not help at all. At the other extreme, if you have many disjoint
    streams then near-linear scalability is achievable.


    Regards,

    Matthias.
    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090430/2b40bd72/attachment.htm

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprabbitmq-discuss @
categoriesrabbitmq
postedApr 29, '09 at 8:35a
activeApr 30, '09 at 4:12a
posts3
users2
websiterabbitmq.com
irc#rabbitmq

People

Translate

site design / logo © 2023 Grokbase