Hi Gordon,
This is slightly concerning. This seems a bit of a catch 22: for optimum
performance it seems best to acknowledge fairly infrequently.
Re "A further question is whether you need acknowledgements at all? "
surely if I don't acknowledge at all then the messages just remain on
the broker and it potentially attempts to resend them. Certainly if I
comment out the session.acknowledge(); line in my ItemConsumer the
memory usage goes up and eventually I go into swap.
Is there any way to set things up to say that I'm not going to
acknowledge receipt? Is your last sentence suggesting that I could
configure things in such a way?? (I can tolerate some message loss in
the cases where I'm trying to eke maximum throughput)
As an aside I'm still pretty sure that one of my colleagues who's been
using qpid::client had similar issues and he sorted it by fiddling with
the flow control parameters, but I've not seen his code so he might have
fiddled with other things too.
I'd still really *love* to know how RedHat configured the MRG whitepaper
tests (preferably in minute detail :-) are you aware of anyone who has
*actually* reproduced the figures of 380,000 256 octet messages in and
out on an 8 core box. I know my laptop has only two cores but 17,000 is
a *long* way off 380,000
I don't think I'm completely stupid, but the examples I attached in the
earlier post are the fastest I've got Qpid to go. Am I missing
something? Can you see anything obviously wrong with my code (or queue
config)
Cheers,
Frase
Gordon Sim wrote:
On 09/25/2011 07:43 PM, Fraser Adams wrote:
This is really freaky why does the consumer performance drop off
dramatically when the ring queue is full. Is it a flow control thing?
No it is not a flow control related issue (that is controlled through
the receivers capacity by the way).
When a consumer acknowledges a message on a ring queue, the broker
first checks to see whether the messages is still enqueued or whether
it has already been displaced by a newer message.
That check is far from optimal, particularly in the case where the
messages has been displaced already. I suspect this is what you are
seeing.
One suggestion is to acknowledge messages more frequently. The theory
here is that this reduces the chance that you acknowledge a message
that has already been removed from the queue. Whether in practice this
will make a significant difference, I can't say for sure.
A further question is whether you need acknowledgements at all?
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]