activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brian <brian.a...@conceptual.ca>
Subject Re: confused about Usage Manager Memory Limit reached
Date Wed, 10 Dec 2014 01:37:59 GMT
On 14-12-08 08:57 PM, Tim Bain wrote:
> The log line tells you how you're doing against two different limits: the
> per-destination limit and the entire-broker limit.  The per-destination
> limit is first, and the log line says you're using 0% of what you've
> allocated per destination, so you're right that you're fine there.  The
> full-broker limit is second, and the log line says you're using 104% of the
> available memory, which is why you're getting flow controlled: although the
> individual destination is empty, the broker as a whole is full, and this
> one message just happens to be the straw that breaks the camel's back.  So
> figure out what other destination has lots of messages (or large messages)
> to be using 70GB(!) of memory...


Thanks for the response. I've spent some time digging into it further 
and your remarks helped to clarify some things. The following links 
helped a bunch, also:

http://www.christianposta.com/blog/?p=273
http://open-source-adventures.blogspot.ca/2009/01/limiting-disk-store-usage-with-active.html

(contains some deprecated info)
https://access.redhat.com/documentation/en-US/Fuse_Message_Broker/5.4/html/Using_Persistent_Messages/files/FuseMBPersistIntro.html

I've since adjusted my config in the following way:

<persistenceAdapter>
   <kahaDB
     directory="${activemq.data}/kahadb"
     journalMaxFileLength="100mb"
     enableJournalDiskSyncs="true"
     checksumJournalFiles="true"
     checkForCorruptJournalFiles="true"
     indexCacheSize="10000"
     cleanupInterval="30000"
     checkpointInterval="5000"
   />
</persistenceAdapter>

<systemUsage>
   <systemUsage>
     <memoryUsage>
       <memoryUsage percentOfJvmHeap="70" />
     </memoryUsage>
     <storeUsage>
       <storeUsage limit="50 gb" />
     </storeUsage>
     <tempUsage>
       <tempUsage limit="50 gb"/>
     </tempUsage>
   </systemUsage>
</systemUsage>


I'd noticed that the log messages mentioned the delay time in increasing 
intervals of 30 seconds. Could this be related to cleanupInterval?

I should point out that these message numbers are an infrequent event 
with this application. The norm is to pass significantly fewer messages 
at a time. With the above changes, i've run this maximal sync several 
times without further trouble, save for the last run, in which a single 
message refused to leave the queue, and without any suggestion in the 
log that AMQ was flow controlling the consumer. I'll keep playing with it.

And did you mean ~700MB? That's much closer to what i'm seeing of the 
actual data being sent over the wire.

Mime
View raw message