There's a certain amount of RAM usage for the broker itself, then a
bit per destination used (as there are various data structures to deal
with connections, consumers, destinations etc) but they are fairly
lightweight. Then the broker tends to keep around a number of messages
in RAM as they are being dispatched to consumers.

Given the nature of GC, its always best you try running your
application and monitoring the heap over time to get a feel for what
the memory requirements are as its dependent on many factors (OS, JVM,
message volume/distribution, number of destinations & connections etc

One thing to be wary of in relatively low RAM environments for the
broker is prefetch configurations for connections...
http://activemq.apache.org/what-is-the-prefetch-limit-for.html

you probably wanna set that to something small (like 1) to avoid
connections & the broker keeping too many messages around. i.e.
trading slower performance for lower RAM usage.

Also be wary of slow consumers causing the broker to hang
http://activemq.apache.org/slow-consumer-handling.html

Generally speaking for high volume brokers - we recommend lots more
RAM than 10MB (we tend to default to 512MB for a stand alone broker
JVM) - but if you have a relativley low volume broker you might be
able to get away with just 10MB - but I'd try it out and monitor
actual RAM usage under typical traffic peaks first.

On 2/8/07, eccrowe <[EMAIL PROTECTED]> wrote:

Greetings,

I apologize in advance if this question has already been asked before, but
my forum search has not been fruitful in regards to this question as of yet.

The question I have is about the memory usage requirements with a
non-persistent topic.  We are running ActiveMQ 4.0-RC2 in an embedded
environment where most memory available on the system has been pre-allocated
to various processes including our JVM (128 MB).    The broker memory
manager has been setup such that its limit is at 10MB.

I believe that the entirety of this 10MB is included within our JVM, but
would appreciate a confirmation on that suspicion.  Stated a different way,
is there any RAM that must be allocated outside of the JVM for a topic
consumer to be able to adequately receive messages?  Will a consumer
possibly stop receiving messages altogether if there was adequate memory
pre-allocated to the JVM but not outside of its virtual machine?

Many thanks in advance.
--
View this message in context: 
http://www.nabble.com/ActiveMQ-Topic-Memory-Usage-Requirements-tf3191331s2354.html#a8859459
Sent from the ActiveMQ - User mailing list archive at Nabble.com.




--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to