Well apparently something is alleviated, but I'm trying to understand
what... The 2 queues are sequential, and the 1st queue is almost always
empty, so I cannot see why I have a bigger buffer.


On Sat, Aug 4, 2012 at 1:17 PM, Sam (Stephen Samuel)
<samspad...@gmail.com>wrote:

> With the intermediate queue you have a bigger buffer, a 2nd queue.
> There might be a bottleneck on certain calls from your initial
> endpoint which having the 2nd queue alleviates.
>
> On Sat, Aug 4, 2012 at 9:48 AM, Xenofon Papadopoulos
> <xenofon.papadopou...@upstreamsystems.com> wrote:
> > Thanks for the tips. I'm trying, however, to understand why there is
> better
> > behavior with the intermediate queue, given that all other parameters
> > (threads etc) remain the same.
> >
> > Also this is a test; in production we normally use about 800 concurrent
> > consumers, and the resource use in the servers is pretty low.
> >
> >
> > On Sat, Aug 4, 2012 at 6:44 AM, Ben O'Day <ben.o...@initekconsulting.com
> >wrote:
> >
> >> tough to say given the unknowns about your setup, but here are a couple
> of
> >> things to consider...
> >>
> >> -for kahadb, set enableJournalDiskSyncs to false to get much better
> >> throughput
> >> -try fewer consumer threads...100 is a lot and you generally have
> >> diminished/negative results with larger thread counts
> >> -tune your CachingConnectionFactory (notably the sessionCacheSize
> should be
> >> increased from the default)...that said, beware of using this with
> polling
> >> consumers connections (see
> >>
> >>
> http://stackoverflow.com/questions/5916638/autoreconnect-problem-with-activemq-and-cachingconnectionfactory
> >> )
> >> -alternatively, try using the AMQ PooledConnectionFactory and see if you
> >> get better performance
> >> -see this thread on AMQ performance:
> >>
> >>
> http://stackoverflow.com/questions/7463415/activemq-performance-gotchas-and-precautions
> >>
> >>
> >> -Ben
> >>
> >>
> >>
> >> On Fri, Aug 3, 2012 at 8:44 AM, Xenofon Papadopoulos <
> >> xenofon.papadopou...@upstreamsystems.com> wrote:
> >>
> >> > Sorry in advance if I should have posted that in ActiveMQ list, but
> here
> >> is
> >> > our case.
> >> > We are running the same test with two different setups:
> >> >
> >> > Setup 1:
> >> > ------------
> >> > We are using a single ActiveMQ broker and a single Camel with the
> routes:
> >> >
> >> > from( "jetty://http://..."; ).inOnly( "activemq:queue:queue2" )
> >> >
> >> > from("activemq:queue:queue2?maxConcurrentConsumers=100").bean(
> >> myProcessor,
> >> > "delay" )
> >> >
> >> > The activeMQ component uses
> >> > a org.springframework.jms.connection.CachingConnectionFactory
> >> >
> >> > myProcess.delay() delays for 200 ms
> >> >
> >> >
> >> > Setup 2:
> >> > ------------
> >> > We are using two ActiveMQ brokers and a single Camel with the routes:
> >> >
> >> > from( "jetty://http://..."; ).inOnly( "activemq1:queue:queue1" )
> >> >
> >> > from(
> >> > "activemq1:queue:queue1?maxConcurrentConsumers=100").inOnly(
> >> > "activemq2:queue:queue2"
> >> > )
> >> >
> >> > from("activemq2:queue:queue2?maxConcurrentConsumers=100").bean(
> >> > myProcessor, "delay" )
> >> >
> >> > Both activeMQ components use their
> >> > own org.springframework.jms.connection.CachingConnectionFactory
> >> > ------------------------
> >> >
> >> > All ActiveMQ brokers are identical, with:
> >> >
> >> > - kahadb
> >> > - <policyEntry queue=">" queuePrefetch="20"
> producerFlowControl="false"
> >> > optimizedDispatch="true" useCache="true">
> >> > - <memoryUsage limit="4 gb"/>
> >> > - <transportConnector name="openwire" uri="tcp://0.0.0.0:xxxx"/>
> >> >
> >> > We test the setup by sending http requests from jmeter with 40 threads
> >> and
> >> > 1200 tps filter. We monitor the enqueue and dequeue rates of all the
> >> > queues, and notice that:
> >> >
> >> > Setup 1:
> >> > ------------
> >> > queue2 enqueue: ~900 tps
> >> > queue2 dequeue: ~50 tps
> >> >
> >> >
> >> > Setup 2:
> >> > ------------
> >> > queue1 enqueue: ~1200 tps
> >> > queue1 dequeue: ~1200 tps
> >> > queue2 enqueue: ~1200 tps
> >> > queue2 dequeue: ~150 tps
> >> >
> >> > This means that the 2nd setup causes the brokers to behave much better
> >> and
> >> > gives us a much higher throughput for our processor.
> >> > How can this be explained? Is there any configuration that will let us
> >> > achieve the same performance with a single broker?
> >> >
> >> > Thank you
> >> > Xenofon
> >> >
> >>
> >
> >
> >
> > --
> > *Xenofon Papadopoulos
> > *
> > *Upstream
> > *4 Kastorias & Messinias Street
> > 153 44 Gerakas Attikis
> > Mob +30 694 027 5392
> > DL   +30 210 661 8277
> > Fax +30 210 661 8550
> > www.upstreamsystems.com
>
>
>
> --
> -Sam
>



-- 
*Xenofon Papadopoulos
*
*Upstream
*4 Kastorias & Messinias Street
153 44 Gerakas Attikis
Mob +30 694 027 5392
DL   +30 210 661 8277
Fax +30 210 661 8550
www.upstreamsystems.com

Reply via email to