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:ppoth...@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.
> 

Reply via email to