You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Lionel Cons (JIRA)" <ji...@apache.org> on 2016/06/20 11:26:05 UTC

[jira] [Created] (ARTEMIS-580) Add setting to control global memory usage

Lionel Cons created ARTEMIS-580:
-----------------------------------

             Summary: Add setting to control global memory usage
                 Key: ARTEMIS-580
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-580
             Project: ActiveMQ Artemis
          Issue Type: Improvement
            Reporter: Lionel Cons


AFAIK, the only way to prevent Artemis from consuming all the heap and dying with OOM errors is to set {{max-size-bytes}}.

This per-address setting is not suitable for brokers with many addresses that have different usage patterns. For instance, on a broker used for testing, Artemis complained that:

{code}
2016-06-20 13:20:03,107 [org.apache.activemq.artemis.core.server] WARN AMQ222205: OutOfMemoryError possible! There are currently 400 addresses with a total max-size-bytes of 4,194,304,000 bytes, but the maximum memory available is 764,411,904 bytes.
{code}

These 400 addresses are not used anymore and will eventually be removed.

In contrast, ActiveMQ 5.x has a much more useful global setting to control how much memory (in total) the broker will use. See {{memoryUsage}} in http://activemq.apache.org/producer-flow-control.html.

Could Artemis also use a global memory setting to limit its memory usage?

What to do when hitting this limit (DROP, BLOCK, PAGE...) could stay per-address.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)