|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
ActiveMQ - Unable to limit temp storeHello,
after several days of testing, i am facing the following issue : I am unable to limit the physical space of temp storage used by AMQ, and temp_store is growing ever and ever... =========================== = Scenario : =========================== - One JVM, handling several producers, spamming the broker. - One JVM, embedding the broker, with several consumers. - All message are as DeliveryMode.NON_PERSISTENT =========================== = Configuration (resumed) =========================== - AMQ.maxFileLength=67108864 - <memoryUsage limit="128mb"/> - <storeUsage limit="88mb" store="#store" /> - <tempUsage limit="160mb"/> - <policyEntry queue=">" producerFlowControl="false" memoryLimit="64mb"/> This should means, based on my understanding : - The temp store is limited to 88mb - Each temp file is 64 mb, so i should have 1 (or 2) temp files maximum 1) ISSUE1 : After flooding the broker, i have massive files into temp directory, enforcing activemq configuration... I have followed several post recommandations, including "http://open-source-adventures.blogspot.com/2009/01/limiting-disk-store-usage-with-active.html", without any success. 2) ISSUE2 : The maxFileLegth has no effect, since i have massive flood of 32 MB "data-TopicSubscription-XXX" files inside "tmp_storage" folder. Someone may have a solution here (i hope...). Thanks by advance! Regards. =========================== = JMX on start =========================== - Broker.Memory = 134217728 - Broker.StoreLimit = 92274688 - Broker.TempLimit = 167772160 - Queue.MemoryLimit = 67108864 =========================== = JMX while running =========================== - Broker.MemoryPercentUsage = 320 (???) - Broker.StorePercentUsage = 0 (logic, i am not using persistent senders) - Broker.TempPercentUsage = 0 (not logic : i have plenty of temp store files) - Queue.MemoryPercentUsage = 0 (???) - Queue.CursorMemoryUsage=435215400 - Queue.CursorPercentUser=324 (???) =========================== = ActiveMQ full configuration : =========================== <beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <!-- Allows us to use system properties as variables in this configuration file --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:C:\xxx\Experimental\maven.1236678842549\src\test\resources\jms2\activemq.properties</value> </property> </bean> <!-- The store, declared as bean due to http://issues.apache.org/activemq/browse/AMQ-2064 --> <bean id="store" class="org.apache.activemq.store.amq.AMQPersistenceAdapter"> <!-- Data directory --> <property name="directory" value="${activemq.base}/data"/> <!-- 64 mb --> <property name="maxFileLength" value="67108864"/> <!-- References to files --> <property name="persistentIndex" value="true"/> </bean> <!-- The broker --> <broker xmlns="http://activemq.apache.org/schema/core" persistent="true" advisorySupport="false" useJmx="true" brokerName="LCH.TEST" monitorConnectionSplits="false" splitSystemUsageForProducersConsumers="false" start="false" persistenceAdapter="#store"> <!-- Destination specific policies using destination names or wildcards --> <destinationPolicy> <policyMap> <policyEntries> <!-- *** producerFlowControl=false --> <!-- When this is added, all your queues will start persisting their messages to the disk. --> <!-- Freeing your RAM to consume more messages w/o any slowdowns. --> <!-- *** memoryLimit : Per queue memory limit --> <policyEntry queue=">" producerFlowControl="false" memoryLimit="64mb"/> </policyEntries> </policyMap> </destinationPolicy> <!-- The transport connectors ActiveMQ will listen to --> <transportConnectors> <transportConnector name="LCH" uri="nio://MIYOPC65:61616"/> </transportConnectors> <!-- Use the following to configure how ActiveMQ is exposed in JMX --> <managementContext> <managementContext createConnector="true"/> </managementContext> <!-- The maximum about of space the broker will use before slowing down producers --> <!-- sendFailIfNoSpace : If no more is available, send client a JMS exception --> <systemUsage> <systemUsage sendFailIfNoSpace="true"> <!-- Memory usage max --> <memoryUsage> <!-- Sets the memory limit in bytes (broker global). Setting the limit in bytes will set the usagePortion to 0 --> <memoryUsage limit="128mb"/> </memoryUsage> <!-- Storage is used for those messages that have been sent PERSISTENT --> <storeUsage> <!-- Sets the memory limit in bytes (broker global). Setting the limit in bytes will set the usagePortion to 0 --> <storeUsage limit="88mb" store="#store" /> </storeUsage> <!-- Temporary storage is used for spooling out messages that have been sent NON_PERSISTENT --> <tempUsage> <!-- Sets the memory limit in bytes (broker global). Setting the limit in bytes will set the usagePortion to 0 --> <tempUsage limit="160mb"/> </tempUsage> </systemUsage> </systemUsage> </broker> <!-- ** Lets configure some Camel endpoints ** ** http://activemq.apache.org/camel/components.html --> <!-- configure the camel activemq component to use the current broker --> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="vm://localhost?create=false&waitForStart=10000"/> <property name="userName" value="${activemq.username}"/> <property name="password" value="${activemq.password}"/> </bean> </property> </bean> </beans> |
|
|
Re: ActiveMQ - Unable to limit temp storeI think you may be experiencing
https://issues.apache.org/activemq/browse/AMQ-2064 - a 5.3-SNAPSHOT could help 2009/7/2 Champax <lchampagnac@...> > > Hello, > > after several days of testing, i am facing the following issue : I am > unable > to limit the physical space of temp storage used by AMQ, and temp_store is > growing ever and ever... > > =========================== > = Scenario : > =========================== > - One JVM, handling several producers, spamming the broker. > - One JVM, embedding the broker, with several consumers. > - All message are as DeliveryMode.NON_PERSISTENT > > =========================== > = Configuration (resumed) > =========================== > - AMQ.maxFileLength=67108864 > - <memoryUsage limit="128mb"/> > - <storeUsage limit="88mb" store="#store" /> > - <tempUsage limit="160mb"/> > - <policyEntry queue=">" producerFlowControl="false" memoryLimit="64mb"/> > > This should means, based on my understanding : > - The temp store is limited to 88mb > - Each temp file is 64 mb, so i should have 1 (or 2) temp files maximum > > 1) ISSUE1 : After flooding the broker, i have massive files into temp > directory, enforcing activemq configuration... > I have followed several post recommandations, including > " > http://open-source-adventures.blogspot.com/2009/01/limiting-disk-store-usage-with-active.html > ", > without any success. > > 2) ISSUE2 : The maxFileLegth has no effect, since i have massive flood of > 32 > MB "data-TopicSubscription-XXX" files inside "tmp_storage" folder. > > Someone may have a solution here (i hope...). Thanks by advance! > Regards. > > =========================== > = JMX on start > =========================== > - Broker.Memory = 134217728 > - Broker.StoreLimit = 92274688 > - Broker.TempLimit = 167772160 > - Queue.MemoryLimit = 67108864 > > =========================== > = JMX while running > =========================== > - Broker.MemoryPercentUsage = 320 (???) > - Broker.StorePercentUsage = 0 (logic, i am not using persistent senders) > - Broker.TempPercentUsage = 0 (not logic : i have plenty of temp store > files) > - Queue.MemoryPercentUsage = 0 (???) > - Queue.CursorMemoryUsage=435215400 > - Queue.CursorPercentUser=324 (???) > > =========================== > = ActiveMQ full configuration : > =========================== > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.apache.org/schema/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.apache.org/schema/core > http://activemq.apache.org/schema/core/activemq-core.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > <!-- Allows us to use system properties as variables in this > configuration > file --> > <bean > > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="locations"> > > <value>file:C:\xxx\Experimental\maven.1236678842549\src\test\resources\jms2\activemq.properties</value> > </property> > </bean> > > <!-- The store, declared as bean due to > http://issues.apache.org/activemq/browse/AMQ-2064 --> > <bean id="store" > class="org.apache.activemq.store.amq.AMQPersistenceAdapter"> > <!-- Data directory --> > <property name="directory" value="${activemq.base}/data"/> > <!-- 64 mb --> > <property name="maxFileLength" value="67108864"/> > <!-- References to files --> > <property name="persistentIndex" value="true"/> > </bean> > > > <!-- The broker --> > <broker xmlns="http://activemq.apache.org/schema/core" > persistent="true" > advisorySupport="false" useJmx="true" brokerName="LCH.TEST" > monitorConnectionSplits="false" > splitSystemUsageForProducersConsumers="false" start="false" > persistenceAdapter="#store"> > > <!-- Destination specific policies using destination names > or wildcards > --> > <destinationPolicy> > <policyMap> > <policyEntries> > <!-- *** producerFlowControl=false > --> > <!-- When this is added, all your > queues will start persisting their > messages to the disk. --> > <!-- Freeing your RAM to consume > more messages w/o any slowdowns. --> > <!-- *** memoryLimit : Per queue > memory limit --> > <policyEntry queue=">" > producerFlowControl="false" memoryLimit="64mb"/> > </policyEntries> > </policyMap> > </destinationPolicy> > > <!-- The transport connectors ActiveMQ will listen to --> > <transportConnectors> > <transportConnector name="LCH" > uri="nio://MIYOPC65:61616"/> > </transportConnectors> > > <!-- Use the following to configure how ActiveMQ is exposed > in JMX --> > <managementContext> > <managementContext createConnector="true"/> > </managementContext> > > <!-- The maximum about of space the broker will use before > slowing down > producers --> > <!-- sendFailIfNoSpace : If no more is available, send > client a JMS > exception --> > <systemUsage> > <systemUsage sendFailIfNoSpace="true"> > <!-- Memory usage max --> > <memoryUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <memoryUsage limit="128mb"/> > </memoryUsage> > > <!-- Storage is used for those messages that > have been sent PERSISTENT > --> > <storeUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <storeUsage limit="88mb" > store="#store" /> > </storeUsage> > > <!-- Temporary storage is used for spooling > out messages that have been > sent NON_PERSISTENT --> > <tempUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <tempUsage limit="160mb"/> > </tempUsage> > </systemUsage> > </systemUsage> > </broker> > > <!-- > ** Lets configure some Camel endpoints > ** > ** http://activemq.apache.org/camel/components.html > --> > > <!-- configure the camel activemq component to use the current > broker --> > <bean id="activemq" > class="org.apache.activemq.camel.component.ActiveMQComponent"> > <property name="connectionFactory"> > <bean > class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL" > value="vm://localhost?create=false&waitForStart=10000"/> > <property name="userName" > value="${activemq.username}"/> > <property name="password" > value="${activemq.password}"/> > </bean> > </property> > </bean> > </beans> > > -- > View this message in context: > http://www.nabble.com/ActiveMQ---Unable-to-limit-temp-store-tp24309792p24309792.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source Integration http://fusesource.com |
|
|
Re: ActiveMQ - Unable to limit temp storeYes, i had read this post.
But i was thinking the workaround (bean, #ref) was working for store and temp files. Whatever, tests i perform are targeting production environnement, and a snapshot cannot be used in such context. Someone has a date for a 5.3 stable release ? Thanks! |
|
|
Re: ActiveMQ - Unable to limit temp storeHi,
did you meanwhile tried the 5.3 stable release ? Cheers, Felix
Felix Ehm,
www.cern.ch |
|
|
Re: ActiveMQ - Unable to limit temp storeNo... sorry but due to our deadline, we have switched to some other jms providers...
|
| Free embeddable forum powered by Nabble | Forum Help |