Author |
Message
|
Seshagiri |
Posted: Tue Oct 04, 2011 9:21 am Post subject: MQ 7 Performance on T3 server solaris |
|
|
Apprentice
Joined: 04 Oct 2011 Posts: 42
|
Hi,
We are testing MQ application which reads messages from the queue and inserts the information into database as well sends a response message by putting a created string(message) into remote queue. The issue here is the time taken by the function readUTF() is high ie reading from the queue. Can any one please help me how to reduce the time or any suggestion on configuration of MQ which increases performance. Also we are using two-phase commit.
Note: here all the queus are Persistence.
OS: solaris 10 T3 server 16-core. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 04, 2011 9:23 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
How have you narrowed down the performance impact to the readUTF() function in the first place?
How are you sure that you should be using readUTF() instead of readString?
In general, you should only be using readUTF() if the message has been created with writeUTF(), and in general you shouldn't create messages using writeUTF(). |
|
Back to top |
|
 |
Seshagiri |
Posted: Tue Oct 04, 2011 9:27 am Post subject: |
|
|
Apprentice
Joined: 04 Oct 2011 Posts: 42
|
mqjeff wrote: |
How have you narrowed down the performance impact to the readUTF() function in the first place?
How are you sure that you should be using readUTF() instead of readString?
In general, you should only be using readUTF() if the message has been created with writeUTF(), and in general you shouldn't create messages using writeUTF(). |
Thanks for the reply
Yes we have narrowed down to it by putting the timestamps and these messages are created by WriteUTF(). Also please let me know what is we create the message with WriteUTF()
Last edited by Seshagiri on Tue Oct 04, 2011 9:30 am; edited 1 time in total |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 04, 2011 9:30 am Post subject: Re: MQ 7 Performance on T3 server solaris |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Seshagiri wrote: |
any suggestion on configuration of MQ which increases performance. |
What configuration are you using now? What steps have you taken to increase queue manager performance already?
I echo the comments of my most worthy associate; how have you determined this read is the problem?
Seshagiri wrote: |
Note: here all the queus are Persistence.
|
Before someone else says it, queues are not persistent. Persistence is a message property, the queue is a suggested setting the application can ignore.
But assuming you are using persistent messages, this makes it all the more important to tune the queue manager as you've got additional i/o.
Lastly:
Seshagiri wrote: |
The issue here is the time taken by the function readUTF() is high ie reading from the queue. |
How long is it taking? And how are you measuring this? (which ties to the identification of problem question) _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Seshagiri |
Posted: Tue Oct 04, 2011 9:40 am Post subject: Re: MQ 7 Performance on T3 server solaris |
|
|
Apprentice
Joined: 04 Oct 2011 Posts: 42
|
What configuration are you using now? What steps have you taken to increase queue manager performance already?
I will post the .ini file tomorrow and for increasing the performance we tried reading more messages in loop.
I echo the comments of my most worthy associate; how have you determined this read is the problem?
We used timestamps for start and end of the readUTF() function.
Before someone else says it, queues are not persistent. Persistence is a message property, the queue is a suggested setting the application can ignore.
But assuming you are using persistent messages, this makes it all the more important to tune the queue manager as you've got additional i/o.
Here we found that there might be some problem with the disk i/o. May be a bug in solaris (already raised ticket with oracle).
Lastly:
How long is it taking? And how are you measuring this? (which ties to the identification of problem question)
We used timestamps for start and end of the readUTF() function. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 04, 2011 9:50 am Post subject: Re: MQ 7 Performance on T3 server solaris |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Seshagiri wrote: |
I will post the .ini file tomorrow and for increasing the performance we tried reading more messages in loop. |
Ok - what loop? And why is there more than 1 message in it anyway?
Just for the record, when you say the read is taking a long time, you do just mean the read call don't you? Not the open / read / close sequence that's your home grown read function?
Seshagiri wrote: |
Here we found that there might be some problem with the disk i/o. May be a bug in solaris (already raised ticket with oracle). |
Certainly you'll need to manage the placement & usage of the disc files to optimise performance. Even if there isn't a bug in the OS.
Seshagiri wrote: |
We used timestamps for start and end of the readUTF() function. |
That still doesn't give any informaiton on how long it's taking? 1 second? 10 seconds? 3 minutes and 17 seconds? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Oct 04, 2011 9:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Are you using Solaris zones?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 04, 2011 9:53 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fjb_saper wrote: |
Are you using Solaris zones?  |
Oooo....good catch!  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 04, 2011 9:59 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It is possible that readUTF() takes a longer period of time than readString would. This would result from an additional layer of character conversion being performed.
Since both writeUTF() and readUTF() impose a significant limit on the length of the data that can be written, and since neither are in any fashion required to read or write character data that happens to be in UTF, it is generally best practices to NOT use them, and instead use readString and writeString with the correct string data.
You may also be running into performance differences with the changes in MQ v7 at newer fixpack levels to perform character conversion in the queue manager rather than in the java layer.
And, as FJ says, there are known performance issues on Solaris with Solaris zones.
More significantly, it is not clear that you have properly identified the source of the performance impact by adding in your own timestamping code. I would strongly suggest that you enable MQ tracing, and use that to determine where the longest time is being taken up. |
|
Back to top |
|
 |
|