Rob,
We also have QpidBench in svn which we use to test with for Java,
and perftest and latencytest C++ client, in cpp/src/tests
which is a quick way to work out if it is setup versus some or other issue.
There is a lot of comp data for those tests.
Carl.
Rob Springer wrote:
Rajith - I suppose I forgot to add that detail - there are two processes
running as part of each run - a sender and a receiver; the receiver only
exits (and thus the test run only finishes) once the receiver has
consumed all sent messages and deleted the queue.
I see the same slowdown if the sender and reciver are running
simultaneously or if the receiver only starts after the sender has
finished sending all messages. Thus, between two test runs, there are
no outstanding messages in the broker. Furthermore, I can sleep for
minutes (or more) between test runs (after running an 8k test), and
still observe the same slowdown.
In either case, the sender will finish first - the slowdown seems to
only affect the receiver. The messages per second processed by the
sender is unchanged; that metric for the sender is (more? less?
whichever is worse) than halved.
Sorry - I should've stated all this in the first place, but thanks!
-Rob
On Fri, 2009-01-23 at 16:57 -0500, Rajith Attapattu wrote:
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,
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]