qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rajith Attapattu <rajit...@gmail.com>
Subject Re: C++ broker - odd performance issue
Date Fri, 23 Jan 2009 21:57:41 GMT
Hello Rob,

Between two tests do you wait until the queue is completely drained?
That is when you run the large message test, do you wait untill all those
messages are consumed before you start the small message test?

What is happening is that during the large messages test, the consumer will
take more time to drain the queues and there will be a backlog of messages
in the broker. When that happens the memory consumption will grow and will
likely slow the broker down.

It is best to build your tests with feedback, i.e not start the small
message test until the large message test is complete.
Otherwise your small message test results will be skewed by the load induced
by the large message test.
And an even better way to do it is to have more a fine grained feedback
loop. That is you send in batches of x messages and you wait for
confirmation from the consumer side that it has received all x. Once you
receive that you can send the next batch of x messages.
Hope this helps.

Regards,

Rajith

On Fri, Jan 23, 2009 at 4:44 PM, Rob Springer <rspringer@etinternational.com
> wrote:

> Hey everyone,
>
> I'm running some lame performance tests with qpid, and I've come across
> some odd behavior.  I'm wondering if I'm doing something wrong, if I've
> found a bug, or if this is a design decision.
>
> My tests are rather simple, consisting of sending and receiving a large
> number of messages of a given size (between 8 and 8192 bytes).  When I
> run an 8 byte (per message, 16384 messages total) test followed by a
> 8192 byte (per message, 12800 messages total) test, all is well; the 8
> byte test runs in roughly 2.5 seconds.
>
> If I run an 8192 byte test followed by an 8 byte test, however, the 8
> byte test takes roughly 6 seconds.  This happens every for test from
> then on (i.e., it's not just random noise).
>
> It does appear that the size of the large message affects the slowdown.
> In more concrete terms, if my larger test is 4096 bytes rather than
> 8192, the 8 byte test will only take ~5 seconds instead of 6.
>
> The results don't seem to be affected by wait time between test
> executions, between number of 8 byte tests, or any other feature.  As
> far as I can tell, if a large message is sent, then smaller message
> performance is permanently degraded (until the broker is restarted).
>
> Can anyone shed any light on this?  I have a tarball of a sample test
> and run script, if anyone would like to see them (where should I put
> them?).
>
> Thanks a ton (hopefully in advance),
> Rob
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
>
>


-- 
Regards,

Rajith Attapattu
Red Hat
http://rajith.2rlabs.com/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message