Author |
Message
|
MQMB&WAS |
Posted: Mon Jul 02, 2018 6:51 am Post subject: How to improve throughput ? |
|
|
Centurion
Joined: 12 Jun 2016 Posts: 130
|
Hello everyone,
We have a JAVA app that GETs persistent msgs in syncpoint from a remote qmgr (Linux). Each transaction takes about 2 -3 seconds. The problem is, the through is very less (app is able to GET about 80 -100 msg/sec ) and this rate doesn't change with tweaking the no. of concurrent connections (tested with 50.,100, 200 conns) and the Kernel settings are all high. I don't see any errors on MQ side. I'd appreciate if someone could tell what else to check/try to improve the throughput. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
mvic |
Posted: Mon Jul 02, 2018 7:03 am Post subject: Re: How to improve throughput ? |
|
|
![](images/avatars/gallery/Star Wars/movie_star_wars_r2-d2.gif) Jedi
Joined: 09 Mar 2004 Posts: 2080
|
Sounds like you are bottle-necking on something outside of MQ.
How big are the messages?
What is your Q depth like in this period of time? Does it steadily grow? |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
MQMB&WAS |
Posted: Mon Jul 02, 2018 7:40 am Post subject: Re: How to improve throughput ? |
|
|
Centurion
Joined: 12 Jun 2016 Posts: 130
|
mvic wrote: |
Sounds like you are bottle-necking on something outside of MQ.
How big are the messages?
What is your Q depth like in this period of time? Does it steadily grow? |
Messages are of 15KB size. Queue Depth wasn't more than 45K and it doesn't grow while getting the messages. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
bruce2359 |
Posted: Mon Jul 02, 2018 10:02 am Post subject: |
|
|
![](images/avatars/58715422151eef88d5f6e3.jpg) Poobah
Joined: 05 Jan 2008 Posts: 9400 Location: US: west coast, almost. Otherwise, enroute.
|
Is there a data base involved in the transactions? _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
MQMB&WAS |
Posted: Mon Jul 02, 2018 10:25 am Post subject: |
|
|
Centurion
Joined: 12 Jun 2016 Posts: 130
|
bruce2359 wrote: |
Is there a data base involved in the transactions? |
There's no DB involved. The client is a b2b integrator, it GETs the message, transforms it and then sends it to a vendor. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
bruce2359 |
Posted: Mon Jul 02, 2018 12:03 pm Post subject: |
|
|
![](images/avatars/58715422151eef88d5f6e3.jpg) Poobah
Joined: 05 Jan 2008 Posts: 9400 Location: US: west coast, almost. Otherwise, enroute.
|
Transforms it how? _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
gbaddeley |
Posted: Mon Jul 02, 2018 4:11 pm Post subject: Re: How to improve throughput ? |
|
|
![](images/avatars/gallery/Star Wars/movie_star_wars_yoda.gif) Jedi
Joined: 25 Mar 2003 Posts: 2495 Location: Melbourne, Australia
|
mvic wrote: |
Sounds like you are bottle-necking on something outside of MQ. |
Agree. Check CPU and network utilisation on both sides. Check the elapsed time per transaction for "b2b integrator, transforms it and then sends it to a vendor". _________________ Glenn |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
hughson |
Posted: Tue Jul 03, 2018 12:58 am Post subject: |
|
|
![](images/avatars/810794940518bb946528b3.jpg) Padawan
Joined: 09 May 2013 Posts: 1916 Location: Bay of Plenty, New Zealand
|
Try turning on application activity trace which will show you how long each MQ verb takes. That will help you determine whether to eliminate or investigate the MQ parts of the transaction.
Here's the presentation I gave on Application Activity Trace at last year's MQTC conference. See page 12 where each MQ verb has a time in micro seconds next to it.
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
PeterPotkay |
Posted: Tue Jul 03, 2018 9:46 am Post subject: Re: How to improve throughput ? |
|
|
![](images/avatars/c7de043e3ce24eaa279a5.gif) Poobah
Joined: 15 May 2001 Posts: 7717
|
MQMB&WAS wrote: |
Each transaction takes about 2 -3 seconds. The problem is, the through is very less (app is able to GET about 80 -100 msg/sec ) |
How do you know the app can get 80-100 msg/sec it its only doing one every 2 to 3 seconds? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
mvic |
Posted: Wed Jul 04, 2018 2:59 pm Post subject: Re: How to improve throughput ? |
|
|
![](images/avatars/gallery/Star Wars/movie_star_wars_r2-d2.gif) Jedi
Joined: 09 Mar 2004 Posts: 2080
|
MQMB&WAS wrote: |
Messages are of 15KB size. Queue Depth wasn't more than 45K and it doesn't grow while getting the messages. |
So each transaction performed by your getter takes 2-3 seconds.
Let's say each one is exactly 2 seconds, and run some numbers.
One app would be able to process 0.5 messages per second.
If you have 200 apps processing in parallel, this gives a maximum of 200*0.5 = 100 messages per second over the whole 200-app suite.
This matches what you say you see from your test.
But MQ is not your limiting factor.
(To be fair, you did not say it was!)
If you start 400 apps in parallel, I guess you will get 400*0.5 = 200 messages per second, in total?
If you start 1000 apps in parallel, I guess you will get 1000*0.5 = 500 messages per second, in total?
I wonder what your app is doing for 2-3 seconds (others have asked the same).
It won't be spending much of it inside MQ.
If you try, but you can't get to 1000 apps in parallel, then again I do not think it will be MQ that is the bottleneck. MQ can move 1000*15KB = 15 MB per second via 1000 connections easily.
(The greater time taken within MQ will be connecting and opening queues, and I hope you're doing that once near the start of the app). |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
|