Details
-
Improvement
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
1.3.0
-
None
-
None
Description
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:
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.
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.
Attachments
Issue Links
- is part of
-
ARTEMIS-581 Add setting to control global disk usage
- Closed
- relates to
-
ARTEMIS-581 Add setting to control global disk usage
- Closed