ActiveMQ
  1. ActiveMQ
  2. AMQ-1764

strange slower consumer and borker problem,make slow consumer application and broker memory grow very fast

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 5.1.0
    • Fix Version/s: NEEDS_REVIEW
    • Component/s: Broker
    • Labels:
      None
    • Environment:

      win2003sp2 , activemq 5.10 ,jdk6.0update6

      Description

      I write a fast producer(produce a message take 1 ms) and a slow consumer(consumer a message take 10 seconds) application,and config standalone activemq through activemq.xml,in the activemq.xml I config constantPendingMessageLimitStrategy limit="10",and in the slow consumer i config connection url is "tcp://127.0.0.1:61616?jms.prefetchPolicy.queuePrefetch=50".
      but the strange problem happends when i want send 200k 512 bytes size messages to borker through fast producer.
      when producer send messages start,the borker and the slow consumer memory useage grow very fast,after send 120k messages, the slow consumer take 80MB memory from at application start 18MB memory,and borker take 140MB memory, then borker slowing down,and totaly freeze.

      1. test.zip
        11 kB
        armgong

        Activity

        Hide
        armgong added a comment - - edited

        it seems https://issues.apache.org/activemq/browse/AMQ-1136

        btw the attach file is includes the activemq config file activemq.xml and producer (in producer dir )and slow consumer application (in slow dir). the two applications user none_durable topic "chatTopic.chatMessage"
        if configured in activemq as following :
        <destinations>
        <topic physicalName="chatTopic.chatMessage" />
        </destinations>
        <!-- Destination specific policies using destination names or wildcards -->
        <destinationPolicy>
        <policyMap>
        <policyEntries>
        <policyEntry queue=">" memoryLimit="20mb"/>
        <policyEntry topic="chatTopic.chatMessage" memoryLimit="64mb">
        <dispatchPolicy>
        <strictOrderDispatchPolicy/>
        </dispatchPolicy>
        <subscriptionRecoveryPolicy>
        <lastImageSubscriptionRecoveryPolicy/>
        </subscriptionRecoveryPolicy>
        <!-slow consumer policy->
        <pendingMessageLimitStrategy>
        <constantPendingMessageLimitStrategy limit="10"/>
        </pendingMessageLimitStrategy>
        </policyEntry>
        </policyEntries>
        </policyMap>
        </destinationPolicy>

        Show
        armgong added a comment - - edited it seems https://issues.apache.org/activemq/browse/AMQ-1136 btw the attach file is includes the activemq config file activemq.xml and producer (in producer dir )and slow consumer application (in slow dir). the two applications user none_durable topic "chatTopic.chatMessage" if configured in activemq as following : <destinations> <topic physicalName="chatTopic.chatMessage" /> </destinations> <!-- Destination specific policies using destination names or wildcards --> <destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" memoryLimit="20mb"/> <policyEntry topic="chatTopic.chatMessage" memoryLimit="64mb"> <dispatchPolicy> <strictOrderDispatchPolicy/> </dispatchPolicy> <subscriptionRecoveryPolicy> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <!- slow consumer policy -> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="10"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
        Hide
        armgong added a comment -

        oh, i make a mistak in slow consumer application,make wrong url
        "tcp://127.0.0.1:61616?jms.prefetchPolicy.queuePrefetch=50"
        now i change it to
        "tcp://127.0.0.1:61616?jms.prefetchPolicy.topicPrefetch=50"
        run test again ,prolem still happened
        and also try change it to
        "tcp://127.0.0.1:61616?jms.prefetchPolicy.all=50"
        run test again ,prolem still happened
        the new attach file is use
        "tcp://127.0.0.1:61616?jms.prefetchPolicy.topicPrefetch=50"

        Show
        armgong added a comment - oh, i make a mistak in slow consumer application,make wrong url "tcp://127.0.0.1:61616?jms.prefetchPolicy.queuePrefetch=50" now i change it to "tcp://127.0.0.1:61616?jms.prefetchPolicy.topicPrefetch=50" run test again ,prolem still happened and also try change it to "tcp://127.0.0.1:61616?jms.prefetchPolicy.all=50" run test again ,prolem still happened the new attach file is use "tcp://127.0.0.1:61616?jms.prefetchPolicy.topicPrefetch=50"

          People

          • Assignee:
            Unassigned
            Reporter:
            armgong
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development