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. >