70% is the magic number, there is a cursorHighWaterMark destination policy that defaults to 70% of system usage. your config can go to 80%
On 7 April 2010 12:15, Richard Holt <richard_h...@btopenworld.com> wrote: > > Hi Gary, > > It appears i am really not understanding this so could you clarify? > > You wrote: > > "Which ever destination tips it over the limit will have its memory usage > flushed to disk because it is > configured with a fileQueueCursor." > > and then wrote: > > "The salient point being that paging to disk is dependent on systemUsage > configuration, not individual/per destination memory usage." > > To me, this says that once the combined destinations usage exceeds the > systemusage/memoryusage of 20mb then the destination which did this is > flushed. > > However, given that i have 16 * 1mb queues how can this ever occur? Surely > this means my maximum memory is 16mb? > > So, flushing must be occuring when destinatons exceed the 1mb value > irrespective of the systemusage/memoryusage setting... > > Or does it? > > > > Gary Tully wrote: > > > > richard, you have configured a 1mb limit for every queue because you use > > the > > ">". So the broker will keep up to 1mb of space in memory for each queue, > > up > > to 16MB for 16 queues. > > > > The paging (via fileQueueCursor) kicks in for each destination only when > > 70% > > of the shared system limit (20mb) is reached. Which ever destination tips > > it > > over the limit will have its memory usage flushed to disk because it is > > configured with a fileQueueCursor. System usage will reduce by 1Mb and > the > > rest of the destinations will continue to use memory up to their limit. > > > > The salient point being that paging to disk is dependent on systemUsage > > configuration, not individual/per destination memory usage. > > > > > > On 7 April 2010 11:22, Richard Holt <richard_h...@btopenworld.com> > wrote: > > > >> > >> Sorry about the thread hijack - however if i have something like this > >> > >> <destinationPolicy> > >> <policyMap> > >> <policyEntries> > >> <policyEntry queue=">" memoryLimit="1mb" > >> producerFlowControl="false"> > >> <pendingQueuePolicy> > >> <fileQueueCursor/> > >> </pendingQueuePolicy> > >> </policyEntry> > >> </policyEntries> > >> </policyMap> > >> </destinationPolicy> > >> > >> <systemUsage> > >> <systemUsage> > >> <memoryUsage> > >> <memoryUsage limit="20mb"/> > >> </memoryUsage> > >> <storeUsage> > >> <storeUsage limit="100mb"/> > >> </storeUsage> > >> <tempUsage> > >> <tempUsage limit="100mb"/> > >> </tempUsage> > >> </systemUsage> > >> </systemUsage> > >> > >> and an Xmx of 32mb > >> > >> Once it reaches a limit of 1mb of messages per queue it will start to > >> page > >> out to disk. > >> > >> And the activemq system reserves 20mb of memory for itself? > >> > >> Is the 1mb then across all queues. So if i have 16 queues i in fact need > >> 16mb. Because then the 20mb + 16 * 1mb will exceed my xmx value? > >> > >> Sorry if i am being obtuse but like the poster i am trying to see how > the > >> 3 > >> memory settings relate to each other. > >> > >> Coincidentally i have tested the above on 5.3.1 and it works really > well. > >> If > >> i use 5.3 it breaks which i think is due to this > >> https://issues.apache.org/activemq/browse/AMQ-2610 and this > >> > >> -- > >> View this message in context: > >> > http://old.nabble.com/Help-understanding-memory-usage-limits-tp28118112p28163080.html > >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. > >> > >> > > > > > > -- > > http://blog.garytully.com > > > > Open Source Integration > > http://fusesource.com > > > > > > -- > View this message in context: > http://old.nabble.com/Help-understanding-memory-usage-limits-tp28118112p28163528.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source Integration http://fusesource.com