Hi, I tried all this without success. The more messages are in the queue the slower it gets. My system was running during the whole weekend now. The first hour I had about 900 messages per second (JMS sending took about 0ms). Then after about 1-2 hours JMS sending suddently takes 1 ore more seconds.
My config looks like this (just the interesting stuff): <bean id="store" class="org.apache.activemq.store.amq.AMQPersistenceAdapter"> <property name="directory" value="${activemq.base}/data"/> <!-- 1GB = 1073741824 --> <property name="maxFileLength" value="1073741824"/> <property name="maxReferenceFileLength" value="104857600"/> <property name="checkpointInterval" value="60000"/> <property name="cleanupInterval" value="30000"/> <property name="persistentIndex" value="true"/> <property name="indexMaxBinSize" value="10485760"/> <property name="indexBinSize" value="1048576"/> <property name="indexPageSize" value="65536"/> </bean> <broker xmlns="http://activemq.apache.org/schema/core" persistent="true" advisorySupport="false" deleteAllMessagesOnStartup="false" useJmx="true" monitorConnectionSplits="false" splitSystemUsageForProducersConsumers="false" brokerName="localhost" dataDirectory="${activemq.base}/data" persistenceAdapter="#store" > <!-- The maximum about of space the broker will use before slowing down producers --> <systemUsage> <systemUsage sendFailIfNoSpace="true"> <memoryUsage> <memoryUsage limit="1gb"/> </memoryUsage> <storeUsage> <storeUsage limit="30gb" store="#store"/> </storeUsage> <!-- temp usage is used with non persistent messages only --> <tempUsage> <tempUsage limit="64mb"/> </tempUsage> </systemUsage> </systemUsage> Anyone else having an idea? Next thing I try is to limit the queue size to lets say on GB and see if performance is fine if the size is limited. Gary Tully wrote: > >> Well, the main question is now: >> 1. Why is the queue getting slower when there are a lot of messages >> inside? > So with X million messages, enqueue times are 4-7 seconds? > This is probabally because the hashIndex is limited, I think you need > to make the indexMaxBinSize quite large and use the same value for > indexBinSize so that no resizing takes place at runtime. This should > speed up index insertion. > Also increasing the indexPageSize may help by increasing the quantity > of data persisted in one write. > > After that, this may be indicative of a problem with the single large > hash index file. > > > >> 2. How can I change the size of the data-queue-data-959 files? > The size of the files in the reference store are controlled by the > maxReferenceFileLength attribute. > >> Would it make sense to have a few big of those files instead of a lot of >> small one? > Not sure, I think this is only relevant to cleanup, a large file with > lots of references may take a long time to be unferenced and ready for > cleanup. > >> 3. What is this file for: hash-index-queue-data_queue#3a#2f#2ftracking > This is the persistent part of the persistent hashIndex > > The following link gives a overview of the amq persistence adapter > explaining the layout etc: > http://activemq.apache.org/amq-message-store.html > > 2009/1/23 Cybexion <cybex...@email.de>: >> >> Hello, >> >> I changed my AMQPersistenceAdapter to write 1 GB files (total store size >> is >> 30GB) >> <bean id="store" >> class="org.apache.activemq.store.amq.AMQPersistenceAdapter"> >> <property name="directory" value="${activemq.base}/data"/> >> <!-- 1GB = 1073741824 --> >> <property name="maxFileLength" value="1073741824"/> >> <property name="checkpointInterval" value="60000"/> >> <property name="cleanupInterval" value="30000"/> >> <property name="persistentIndex" value="true"/> >> </bean> >> >> After that I created messages during the whole night into the queue. >> The result looks like this: >> >> ls -l data/journal >> -rw-r--r-- 1 activemq java 1073741777 2009-01-22 21:06 data-2 >> -rw-r--r-- 1 activemq java 1073741637 2009-01-22 23:17 data-3 >> -rw-r--r-- 1 activemq java 1073741573 2009-01-23 01:17 data-4 >> -rw-r--r-- 1 activemq java 1073741815 2009-01-23 03:40 data-5 >> -rw-r--r-- 1 activemq java 1073741674 2009-01-23 06:48 data-6 >> -rw-r--r-- 1 activemq java 1073217536 2009-01-23 11:22 data-7 >> -rw-r--r-- 1 activemq java 2088 2009-01-23 11:22 data-control >> >> About 5.2 GB of data has been created. >> >> These are the hundreds of files containing the keys to the messages. >> ls -l data/kr-store/data >> -rw-r--r-- 1 activemq java 2097142 2009-01-23 11:04 >> data-queue-data-957 >> -rw-r--r-- 1 activemq java 2097117 2009-01-23 11:11 >> data-queue-data-958 >> -rw-r--r-- 1 activemq java 2068877 2009-01-23 11:21 >> data-queue-data-959 >> -rw-r--r-- 1 activemq java 1462429697 2009-01-23 11:24 >> hash-index-queue-data_queue#3a#2f#2ftracking >> -rw-r--r-- 1 activemq java 153 2009-01-22 17:10 >> index-container-roots >> -rw-r--r-- 1 activemq java 705609480 2009-01-23 11:24 index-queue-data >> -rw-r--r-- 1 activemq java 0 2009-01-22 17:09 lock >> >> ls -l | wc >> 721 5762 54026 >> >> Here are some additional JMX infos about the broker >> >> ActiveMQ Broker Memory percent Usage : 0,00 >> ActiveMQ Broker Store percent Usage : 26,00 >> ActiveMQ Broker Temp percent Usage : 0,00 >> ActiveMQ Broker Consumer Count : 1,00 >> ActiveMQ Broker Total Dequeue Count : 3.629.262,00 >> ActiveMQ Broker Total Enqueue Count : 16.132.693,00 >> ActiveMQ Broker Total Message Count : 12.503.432,00 >> >> Now to the bad news: >> It looks like the more messages are in the queue, the slower it gets to >> send >> new messages into it (using JmsTemplate.send() method). >> When I currently run I java programm that inserts messages into the Queue >> I >> have response times of 4-7 seconds !!!! >> This is not good. >> Here is an extract of the AMQ log file: >> 2009-01-22 18:08:11,229 [ueue://tracking] INFO >> kaha.impl.index.hash.HashIndex - Resize hash bins >> queue-data_queue#3a#2f#2ftracking from 1024 to 2048 >> 2009-01-22 18:10:24,642 [ueue://tracking] INFO >> kaha.impl.index.hash.HashIndex - Resize hash bins >> queue-data_queue#3a#2f#2ftracking from 2048 to 4096 >> 2009-01-22 18:13:35,224 [ueue://tracking] INFO >> kaha.impl.index.hash.HashIndex - Resize hash bins >> queue-data_queue#3a#2f#2ftracking from 4096 to 8192 >> 2009-01-22 18:18:12,564 [ueue://tracking] INFO >> kaha.impl.index.hash.HashIndex - Resize hash bins >> queue-data_queue#3a#2f#2ftracking from 8192 to 16384 >> >> Well, the main question is now: >> 1. Why is the queue getting slower when there are a lot of messages >> inside? >> 2. How can I change the size of the data-queue-data-959 files? >> Would it make sense to have a few big of those files instead of a lot of >> small one? >> 3. What is this file for: hash-index-queue-data_queue#3a#2f#2ftracking >> >> Thanks and regards >> >> Jörg >> >> -- >> View this message in context: >> http://www.nabble.com/Performance-in-relation-to-queue-size-tp21601585p21622121.html >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> > > > > -- > http://blog.garytully.com > > Open Source SOA > http://FUSESource.com > > -- View this message in context: http://www.nabble.com/Performance-in-relation-to-queue-size-tp21601585p21668680.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.