-
15. Re: Performance Issues With Routing (ESB 4.8)
kconner May 14, 2010 8:13 AM (in response to davesiracusa)There is no hard coded poll period that I am aware of, rather there should be a maximum period for which the consumer waits before returning.
The real issue with the jms-provider is that there is a single thread pulling messages and then providing them to a thread pool to execute, done in this manner because some of the couriers requrie it.
If you replace jms-provider with the jms-jca-provider then you will have concurrent threads being 'pushed' by the JMS implementation.
How does this affect your tests?
Kev
-
16. Re: Performance Issues With Routing (ESB 4.8)
davesiracusa May 14, 2010 10:32 AM (in response to kconner)>> There is no hard coded poll period that I am aware of, rather there should be a maximum period for which the consumer waits before returning.
I took another look - In the source code, file: JmsGatewayListener.java, the doRun execution thread calles receiveOne which attempts to read from JMS using the overloaded receive with a 200 mSec timeout. I was incorrect, the latency is far shorter however measurable during my tests. The latency is actually the setup to make the call over again (negligible), not 200 mSec as I originally thought.
>> The real issue with the jms-provider is that there is a single thread pulling messages and then providing them to a thread pool to execute, done in this manner because some of the couriers requrie it.
When I increased the maxThreads for each of the jms-listeners performance went up considerably.
>> If you replace jms-provider with the jms-jca-provider then you will have concurrent threads being 'pushed' by the JMS implementation.
I will try it, so I can compare the performance I originally achieved. Thanks!
Best,
Dave
-
17. Re: Performance Issues With Routing (ESB 4.8)
kconner May 14, 2010 11:27 AM (in response to davesiracusa)When I increased the maxThreads for each of the jms-listeners performance went up considerably
This is the size of the thread pool and controls how many concurrent pipeline requests can be performed.
I will try it, so I can compare the performance I originally achieved. Thanks!
No problems, please let us know how it goes.
Kev
-
18. Re: Performance Issues With Routing (ESB 4.8)
davesiracusa May 14, 2010 1:42 PM (in response to kconner)I repeated my tests: I achieved 1570 TPM for the jms-jca-provider and 2800 TPM for the jms-provider.
--Dave
-
19. Re: Performance Issues With Routing (ESB 4.8)
kconner May 17, 2010 5:34 AM (in response to davesiracusa)Interesting, every test we have done shows JCA inflow to be faster. What is the test doing??
Kev
-
20. Re: Performance Issues With Routing (ESB 4.8)
davesiracusa May 17, 2010 6:58 AM (in response to kconner)I drop 1000 messages into a queue. The messages have a unique number and timestamp.
The service displays the message, threadid and its own timestamp.
It also performs 250 mSec worth of work.
In order to get it to perform concurrently I set the number of maxthreads and jms pool sufficiently high.
Right now I'm running everything on one laptop.
I'll be repeating some of my tests on server-based VMs in a week or so.
I'll let you know how it goes.
Best,
--Dave
-
21. Re: Performance Issues With Routing (ESB 4.8)
kconner May 17, 2010 7:01 AM (in response to davesiracusa)Could you send me a copy of this test?
Kev
-
22. Re: Performance Issues With Routing (ESB 4.8)
davesiracusa May 17, 2010 9:29 PM (in response to kconner)Sure, I'll upload it tomorrow. Its just a modified quickstart.
The jmeter test requires a bit of setup. If you can do without it's probably best.
I created a custom Java Request object which creates a JMS Point to Point which allows me to include tokens in the command message. Like %x = generate a incrementing number, %d = date, etc. I also had to add all the jars to the jmeter lib directory, and modify a property file.
-
23. Re: Performance Issues With Routing (ESB 4.8)
davesiracusa May 19, 2010 7:52 AM (in response to davesiracusa)I've attached the modified quickstart.
-
helloworld.daves.zip 26.7 KB
-