Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-580

Add setting to control global memory usage

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 1.3.0
    • 1.4.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

          Activity

            People

              clebertsuconic Clebert Suconic
              lionel.cons Lionel Cons
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: