Author |
Message
|
JPN |
Posted: Thu Jun 29, 2017 12:02 am Post subject: Message Processing on MQ |
|
|
Novice
Joined: 27 Feb 2015 Posts: 14
|
Is there a co-relation between the number of IPPROCS and the message consumption rate?
JBOSS application is connecting to the MQ v8.0.0.4 to pick up messages and if they are running multiple nodes then it slows down the performance of the get rate. However, if I run with single node then it seems to process faster with atleast 4500/min.
If there are 2 nodes then IPPROCS seems to go to 24 whereas with one node it is at 12.
Also, what is the peak message processing rate of MQ?
MQ server: 8.0.0.4
OS: Linux
Client: Resource Adapter 7.5 |
|
Back to top |
|
 |
PaulClarke |
Posted: Thu Jun 29, 2017 1:19 am Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
There are no magic numbers when dealing with performance. You have to use due diligence to work out where the bottle-neck is.
It certainly is not true to say that IPPROCS is a key indicator of performance. In general you can process more messages per time interval if you have more consumers of the message however clearly that will depend enormously on what the application is doing. You seem to suggest that as the IPPROCS value increases the performance actually gets worse. That would seem to suggest that you have some locking in your application that is serialising the requests and introducing context switches or something like that.
Your performance rate of 4500/min (about 75/second) is extremely slow for MQ. In other words at those speeds it is unlikely that MQ is the bottleneck unless the messages are really big or you are communicating over a really slow link. MQ message performance is usually in terms of thousands of messages per second. However, as I say, there are no hard and fast rules it depends hugely on the persistence of the messages, the size of the messages and how you are connected to the Queue Manager.
From what you've told me though I would be wanting to know what the JBOSS application was doing and how it was written.
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
JPN |
Posted: Thu Jun 29, 2017 4:45 am Post subject: Message Processing on MQ |
|
|
Novice
Joined: 27 Feb 2015 Posts: 14
|
JBOSS application picks up the message using XA transaction and looks at the header message to identify which application it has to be routed to. Once the routing is identified then it duplicates the message into 4 to 8 queues based on the various events. For instance,
Message Event 1: If the message is to information which needs to be boradcasted to all partners then the incoming messages are copied to 8 different queues.
Message Event 2: This is an update message - this will be sent across to 4 different queues based on the JMS header information |
|
Back to top |
|
 |
PaulClarke |
Posted: Thu Jun 29, 2017 7:36 am Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
So, the only thing this application does some MQ messaging ? It does 1 MQGET and 4 - 8 MQPUTs ? Well it seems you should be able to get a lot faster than 75 per second.
My question would be.....
1/ Why is it using an XA Transaction ? If the only thing you are doing is MQ Operations then a local MQ transaction would be fine.
2/ Does the application move one message per transaction ? If so then this would be the worse performing thing you can do. Transaction commits are hugely expensive since they represent a log force. Essentially you are gated by your spinning media unless the messages are non-persistent (or you are solid state of course). If I were designing the application I would move, say, 20 messages in a single transaction. Of course this depends on factors such as message size etc.
It doesn't explain why your performance drops as you add more 'movers'. I would expect better performance since MQ could dove-tail more transaction in each time slice so I suspect more is going on here. Are you connected via a client connection or local ?
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
bruce2359 |
Posted: Thu Jun 29, 2017 4:06 pm Post subject: Re: Message Processing on MQ |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
JPN wrote: |
Is there a co-relation between the number of IPPROCS and the message consumption rate? |
No. IPPROCS is only the number of processes (applications) that have the queue open for input. None, some or all, might be consuming messages - or might not.
You could enable queue statistics, and look at time-on-queue, time between put and get.
Is there a database or some such XA-compliant resource manager involved? _________________ 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 |
|
 |
JPN |
Posted: Thu Jun 29, 2017 10:19 pm Post subject: |
|
|
Novice
Joined: 27 Feb 2015 Posts: 14
|
IntervalStartDate: IntervalStartTime: QMinDepth: QMaxDepth: PutCount: GetCount:
30/06/2017 06.56.21 0 1313 25736 25539
30/06/2017 07.06.22 0 1273 33436 33063
30/06/2017 07.16.23 0 2453 41482 40129
30/06/2017 07.26.23 1938 13072 51898 40837
30/06/2017 07.36.24 12969 25467 54960 42526
30/06/2017 07.46.25 25466 41780 59819 43506
Please see the stats from amqsmon which is with a 10 min interval |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Jun 30, 2017 5:11 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
If you are using a svrconn type channel, did you set its share conversation attribute to 1? Remember the default is 10 and serialization will happen at the socket level  _________________ MQ & Broker admin |
|
Back to top |
|
 |
JPN |
Posted: Fri Jun 30, 2017 8:38 am Post subject: |
|
|
Novice
Joined: 27 Feb 2015 Posts: 14
|
I have got the sharecnv as 0. Is it worth making it 1? |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Jun 30, 2017 10:43 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
JPN wrote: |
I have got the sharecnv as 0. Is it worth making it 1? |
0 is fine. If you're at V8 and above I'd test it with 1. But I don't expect to see a major difference. You first need to determine where your bottle neck is.
I see you are talking about JMS and JBoss. I am more used to WAS but it is worth to make sure that your MDBs are not thread starved, or if you are using a DB that you have a connection pool big enough defined. (Sames goes for MQ).
If your messages aren't of any significant size you should be able to get a much higher throughput. Looking at the performance statistics (see support packs) and comparing would be a good start...
Also make sure you have a backout threshold set on all your input queues. May be the throughput is low because you are dealing with a poison message or two...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
JPN |
Posted: Fri Jun 30, 2017 8:33 pm Post subject: |
|
|
Novice
Joined: 27 Feb 2015 Posts: 14
|
How do i check for the starvation of mdb or MW? |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Jul 01, 2017 2:20 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
JPN wrote: |
How do i check for the starvation of mdb or MW? |
It's a savvy mix of calculated values being checked against configured pool values...
Say 10 MDB's with 10 instances max each => 110 connections (210 if there is a reply )
Threadpool/Sessionpool for MDBs need to be up to max for each
Verify your MQ Connection factory pool...
Verify your MDB thread/session pool...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|