activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Colomb <Alex.Col...@csstrading.com>
Subject non persistent messages and maxPageSize queue performance
Date Wed, 31 Dec 2014 15:57:11 GMT
I've been tracking down some performance issues on one of our queues. The queue is hosted on
an embedded broker. There is one producer and one consumer. All messages sent to the queue
are non-persistent. The producer initially will have a burst of ~30k messages and then slow
down to 100 messages a second. During the initial burst of messages, I see the consumer slowly
consuming messages and eventually a large number of messages expire off the queue before the
consumer can get to them. I've tracked the issue down to the maxPageSize setting. If I leave
it at the default, messages are consumed very quickly and non are expired. If I set it to
100k, I see the behavior described above.

The documentation (http://activemq.apache.org/per-destination-policies.html) describes maxPageSize
as "maximum number of persistent messages to page from store at a time." Why is changing this
setting affecting the delivery/consumption of non persistent messages? Why would a large value
slow things down?

Here is the programmatic broker configuration:

BrokerService embeddedBroker = new BrokerService();

PolicyEntry policyEntry = new PolicyEntry();
policyEntry.setQueue( ">" );
policyEntry.setProducerFlowControl( true );
policyEntry.setAdvisoryForSlowConsumers( true );
policyEntry.setMaxPageSize( 100000 );
policyEntry.setExpireMessagesPeriod( 15000 );

PolicyMap policyMap = new PolicyMap();
policyMap.setDefaultEntry( policyEntry );
embeddedBroker.setDestinationPolicy( policyMap );
embeddedBroker.addConnector( "tcp://0.0.0.0:51515" );

I'm using Active MQ 5.10.0.

Thank you.

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