This could be due to https://issues.apache.org/activemq/browse/AMQ-2512 - could you try 5.3.1
?
On 25 Mar 2010, at 13:28, Pothier, Peter wrote:
> Hi,
>
> I finally figured out how to use jconsole remotely (I had a
> misunderstanding
> of what value to use in -Djava.rmi.server.hostname=<host>, using the
> jconsole's
> machine's IP address instead of the target).
>
> Going back to running unit tests based on both libstomp and activemq-cpp
> (2.2.1),
> I can see, using jconsole, the Heap usage continuously rise (albeit with
> a sawtooth),
> and then reach its limit. At this point the unit tests halt. What
> seems
> the most interesting of all the Memory Pools is the "Tenured Gen" which
> eventually
> plateau's when the Used=Committed=Max. The activemq.log, which
> periodically has
> the KahaDB slow messages or PageFile flush messages, suddenly stops. No
> interesting
> messages. (by the way I reduced the heap down to 64M to get it to
> saturate quicker).
>
> I'm not really sure where to look. So I took a look at the MBeans. The
> AMQ-BROKER
> attributes shows
>
> StorePercentUsage = 56
> TotalDequeueCount = 214618
> TotalEnqueueCount = 429046
> TotalMessageCount = 214428
> MemoryLimit = 20971520
> StoreLimit = 104857600
> TotalConsumerCount=2
>
> I've read a little about the Total Enqueue/Message/Dequeue counters, but
> still
> don't understand how they relate to each other. A picture would be
> worth a
> thousand words.
>
> The setup is fairly simple right now, sending persistent messages.
>
> Producer - - > JMS Queue - - > Server - - > JMS Durable Topic - - >
> Consumer
>
> The Queue shows
>
> DequeueCount = 214618
> DispatchCount = 214618
> EnqueCount = 214618
> MemoryPercentUsage = 0
>
> The Topic seems more interesting
>
> DequeueCount = 0
> DispatchCount = 214236
> EnqueueCount = 214428
> MemoryPercentUsage = 0
>
>
> Is it strange that the Dequeue Count for the Topic is zero? I know the
> consumer of the Topic is receiving messages. Why would the Dequeue
> Count
> be zero? Is the consumer suppose to be doing something that it's not?
>
> Any other places in jconsole I should be looking to determine where all
> the heap is going?
>
> Thanks!
>
> Peter P
>
>
> -----Original Message-----
> From: Peter P [mailto:ppothier@crossbeamsys.com]
> Sent: Wednesday, March 17, 2010 5:56 PM
> To: users@activemq.apache.org
> Subject: ActiveMQ 5.3.0 Memory Usage - Connections
>
>
> Hi,
>
> We are using ActiveMQ 5.3.0, with both libstomp and ActiveMQ-CPP
> producer
> and consumer clients,
> sending persistent messages to both queues and topics. We have noticed
> the
> amount of memory used
> by ActiveMQ (reported by linux top) grows over time.
>
> Trying to determine whether the memory grew in response to messages or
> connections, we noticed
> using a python script based on stomppy-2.0.4-1cb, that ActiveMQ memory
> grew
> rather quickly when
> we connected and disconnected multiple times.
>
> Here's the basis of the script
>
> for i in range (0,1000) :
> conn = stomp.Connection()
> conn.set_listener('', MyListener())
> conn.start()
> conn.connect()
> conn.disconnect()
>
> Using jmap/jhat, here's the most popular Instance Counts and Histogram
> prior
> to running the script
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>
> 29892 root 19 0 823m 95m 10m S 0.0 2.4 0:07.86 java
>
>
> All Classes (excluding platform)
> Class Instance Count Total Size
> class [B 6288 7214080
> class [C 26005 2285484
> class [I 4775 916612
> class java.lang.reflect.Method 6971 899259
> class java.lang.Class 4802 691488
> class java.lang.String 25732 514640
> class [Ljava.util.HashMap$Entry; 3240 514504
> class [S 6384 396498
> class [Ljava.lang.Object; 4263 378984
> class [Lorg.apache.activemq.command.DataStructure; 2 262160
> class java.util.LinkedHashMap$Entry 4471 196724
>
>
> Instance Counts for All Classes (including platform)
> 26005 instances of class [C
> 25732 instances of class java.lang.String
> 6971 instances of class java.lang.reflect.Method
> 6741 instances of class [Ljava.lang.Class;
> 6384 instances of class [S
> 6288 instances of class [B
> 5806 instances of class java.util.HashMap$Entry
> 4802 instances of class java.lang.Class
> 4775 instances of class [I
> 4471 instances of class java.util.LinkedHashMap$Entry
> 4263 instances of class [Ljava.lang.Object;
>
>
>
>
> and after running the script a bunch of times
>
>
>
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>
> 29892 root 18 0 880m 153m 10m S 0.0 3.9 0:35.62 java
>
> Heap Histogram
>
> All Classes (excluding platform)
> Class Instance Count Total Size
> class [B 9880 16696961
> class [C 32597 3238584
> class [I 4823 2948344
> class java.util.concurrent.ConcurrentHashMap$Segment 65216 2086912
> class java.util.concurrent.locks.ReentrantLock$NonfairSync 66712
> 1867936
> class [Ljava.util.concurrent.ConcurrentHashMap$HashEntry; 65216
> 1570048
> class [Ljava.util.HashMap$Entry; 6575 1022200
> class java.lang.reflect.Method 6895 889455
> class java.lang.Class 4832 695808
> class java.lang.String 31143 622860
> class [Ljava.util.concurrent.ConcurrentHashMap$Segment; 4076
> 586944
> class org.apache.activemq.command.ActiveMQMessage 1812 467496
> class [S 6077 370234
> class java.util.HashMap$Entry 11704 327712
> class [Ljava.lang.Object; 5130 318360
> class java.net.SocksSocketImpl 1755 282555
> class [Lorg.apache.activemq.command.DataStructure; 2 262160
> class java.util.HashMap 5182 248736
> class java.util.concurrent.ConcurrentHashMap 4076 228256
> class java.util.LinkedHashMap$Entry 4155 182820
>
> Instance Counts for All Classes (including platform)
> 66712 instances of class
> java.util.concurrent.locks.ReentrantLock$NonfairSync
> 65216 instances of class java.util.concurrent.ConcurrentHashMap$Segment
> 65216 instances of class
> [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
> 32597 instances of class [C
> 31143 instances of class java.lang.String
> 11704 instances of class java.util.HashMap$Entry
> 9880 instances of class [B
> 9371 instances of class java.lang.Object
> 6895 instances of class java.lang.reflect.Method
> 6575 instances of class [Ljava.util.HashMap$Entry;
> 6143 instances of class [Ljava.lang.Class;
> 6077 instances of class [S
> 5182 instances of class java.util.HashMap
> 5130 instances of class [Ljava.lang.Object;
> 4832 instances of class java.lang.Class
> 4823 instances of class [I
>
>
>
>
> Here are the diffs between our config file and activemq-demo.xml
>
>
>
> 51c51
> < <broker xmlns="http://activemq.apache.org/schema/core"
> brokerName="amq-broker" useJmx="true">
> ---
>> <broker xmlns="http://activemq.apache.org/schema/core"
>> brokerName="amq-broker" persistent="true" useJmx="true">
> 68c68
> < <policyEntry queue=">" producerFlowControl="true"
> memoryLimit="5mb"/>
> ---
>> <policyEntry queue=">" producerFlowControl="false"
>> memoryLimit="5mb"/>
> 76a77,79
>> <messageEvictionStrategy>
>> <oldestMessageEvictionStrategy/>
>> </messageEvictionStrategy>
> 81d83
> < -->
> 82a85,87
>> <timedSubscriptionRecoveryPolicy
>> recoverDuration="60000" />
>> -->
>> <fixedCountSubscriptionRecoveryPolicy
>> maximumSize="300" />
> 83a89
>>
> 88a95,96
>>
>>
> 197c205
> < <!-- Create a TCP transport that is advertised on via an
> IP
> multicast
> ---
>> <!-- Create a TCP transport that is NOT advertised on via
> an
>> IP multicast
> 199c207
> < <transportConnector name="openwire"
> uri="tcp://localhost:61616" discoveryUri="multicast://default"/>
> ---
>> <transportConnector name="openwire"
>>
> uri="tcp://localhost:61616?transport.keepAliveResponseRequired=true;wire
> Format.tcpNoDelayEnabled=true"/>
> 204c212
> < <transportConnector name="stomp"
> uri="stomp://localhost:61613"/>
> ---
>> <transportConnector name="stomp"
>> uri="stomp://localhost:61613?wireFormat.tcpNoDelayEnabled=true"/>
> 208a217,219
>>
>>
>>
> 325c336,337
> < </beans>
> \ No newline at end of file
> ---
>>
>> </beans>
>
>
> Checking the ActiveMQ 5.3.1 Fixed Issues page
>
> http://issues.apache.org/activemq/browse/AMQ/fixforversion/12183
>
> this sounds different from any issue.
>
> We run with only a single instance of ActiveMQ.
>
> Are there any configuration parameters that controls this behavior?
> Does ActiveMQ normally grow this large, cleaning up periodically?
>
> Is this normal behavior? Is there something I should be looking for?
>
> Thanks,
>
> Peter P
>
>
> --
> View this message in context:
> http://old.nabble.com/ActiveMQ-5.3.0-Memory-Usage---Connections-tp279378
> 10p27937810.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
|