Author |
Message
|
Kareem_khan |
Posted: Wed Apr 06, 2005 6:27 am Post subject: slower performance observed What to do?. |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
slower performance observed What to do?.
Here is the senario we have huge number of messages which need to be processed thousends of messages are put into queue and they are pulled by EJB Message driven bean(MDB) when they are running together(put by mq client,get by MDB) performance is very slow.
if putting thousends of messages and getting of messages by MDB are ran one after other we see double the performance is their any soluction to resolve this Issues.
What I am thining?.
Since doing one thing at a time puting message and getting message double performance is reliazed.Now thinking of using two queues one to put messages and other to get messages and use MQ triggers to
move messages from put queue to get queue that way I theoritically achive double the performance.Any suggestions and input is hightly appriciated. Is this the right way to do.I need experts suggestion.
Thanking you. |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Apr 06, 2005 6:33 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Putting another queue in between won't help.
Is your MDB using selectors to identify messages? selectors are slow.
Is your MQClient committing messages individually, or all at once?
Do you have a single-threaded MDB? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
vennela |
Posted: Wed Apr 06, 2005 9:04 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
|
Back to top |
|
 |
malammik |
Posted: Wed Apr 06, 2005 9:31 am Post subject: |
|
|
 Partisan
Joined: 27 Jan 2005 Posts: 397 Location: Philadelphia, PA
|
|
Back to top |
|
 |
Kareem_khan |
Posted: Wed Apr 06, 2005 10:19 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
[quote="jefflowrey"]
hi jefflowrey,
Quote: |
Putting another queue in between won't help. |
Yes I tried with triggers putting another queue inbetween realized that it is not helping.
Quote: |
Is your MDB using selectors to identify messages? selectors are slow |
.
No we are not using message selectors
Quote: |
Is your MQClient committing messages individually, or all at once? |
MQClient is committing messages individually.
Quote: |
Do you have a single-threaded MDB? |
No I have multiple threaded MDB
This solowing down is observed only when both client and MDB run together performence is twice if client and MDB ran seperately.
Any Idea's are greatly appriciated
Last edited by Kareem_khan on Wed Apr 06, 2005 10:35 am; edited 4 times in total |
|
Back to top |
|
 |
Kareem_khan |
Posted: Wed Apr 06, 2005 10:21 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
vennela wrote: |
Configure another MDB |
Hi vennela,
Sure I will try for Configure another MDB.
Thank you. |
|
Back to top |
|
 |
malammik |
Posted: Wed Apr 06, 2005 10:34 am Post subject: |
|
|
 Partisan
Joined: 27 Jan 2005 Posts: 397 Location: Philadelphia, PA
|
|
Back to top |
|
 |
Kareem_khan |
Posted: Wed Apr 06, 2005 10:47 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
malammik wrote: |
Do you have message affinity problems i.e do message have to be processed in the certain order?
Post your listener and connection factory settings. |
No they do not have to be processed in certain order each messages is
processed independently.
slowing down is observed only when both MQClient and MDB are started together if they ran seperately they give twice the performance. |
|
Back to top |
|
 |
Kareem_khan |
Posted: Wed Apr 06, 2005 10:54 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
malammik wrote: |
What does your MDB do with messages after they are received? Perhaps the problem is elsewhere and it looks like MDB is slow because it is acutally doing like a DB insert or something. |
The messages is xml docuemnt and it is financial document which need to be evaluated it is going to perform several database operations. where MDB will take some time to process but it is taking more time when
both MQClient putting messages and MDB listener getting messages are done together where their are millians of such documents need to be processed.
Thank you for help.
kareem. |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Apr 06, 2005 10:57 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Basically, it sounds like this is normal. The MDB can't process a message until the client has actually written it. If it takes x time for client to write 1 message, and y time for MDB to read 1 message, it will take n(x+y) time for the system to process n messages.
And the time difference between the MDB reading message 1 and the MDB reading message n will be ny+(n-1)x.
It should not take 2n(x+y). _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Kareem_khan |
Posted: Wed Apr 06, 2005 11:31 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
jefflowrey wrote: |
Basically, it sounds like this is normal. The MDB can't process a message until the client has actually written it. If it takes x time for client to write 1 message, and y time for MDB to read 1 message, it will take n(x+y) time for the system to process n messages.
And the time difference between the MDB reading message 1 and the MDB reading message n will be ny+(n-1)x.
It should not take 2n(x+y). |
Hi jefflowrey,
Thank you for mathatmatical representation of the current problem
it is exactly observed as 2n(x+y) twice the time in place of n(x+y)
n being number of messages, when both put from MQ client and get from MDB are ran concurrently. why is so is the mistery now. their is no complex set up whole set up and process is stright forword. your input is appriciated.
Thanking you. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Apr 06, 2005 1:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Remember the processing speed depends as well on a number of different inputs:
Speed of the xml parser/formatter under load...
Speed of serialization / deserialization under load...
DB contentions ...
Backout Threshold etc...
Number of MDB threads reading from the same queue...
Data in the queue (Remember DB contentions ....)
These are all subjective measures as they change under load.
Like Jeff said, it may be that the slow down is environmentally triggered.
The WAS load surely is different it the WAS is putting the messages to the queue.
What I suspect is that you might have some DB or other resource contention with the process that is putting the messages to the queue especially if this doesn't happen under syncpoint.
The contention situation might be very tiny but it could cause each message to be rolled back on the first attempt.
If it is a process outside the WAS that is doing it the load parms and hit on the WAS speed are different...
Enjoy  |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Apr 06, 2005 3:15 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I guess a side point to my maths post was...
How are you measuring the time taken?
If you are measuring from the start of the first MDB get to the end of the last MDB get, and thinking that that is n*y, then you are forgetting the (n-1)x factor in there. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Kareem_khan |
Posted: Thu Apr 07, 2005 9:55 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
fjb_saper wrote: |
Remember the processing speed depends as well on a number of different inputs:
Speed of the xml parser/formatter under load...
Speed of serialization / deserialization under load...
DB contentions ...
Backout Threshold etc...
Number of MDB threads reading from the same queue...
Data in the queue (Remember DB contentions ....)
These are all subjective measures as they change under load.
Like Jeff said, it may be that the slow down is environmentally triggered.
The WAS load surely is different it the WAS is putting the messages to the queue.
What I suspect is that you might have some DB or other resource contention with the process that is putting the messages to the queue especially if this doesn't happen under syncpoint.
The contention situation might be very tiny but it could cause each message to be rolled back on the first attempt.
If it is a process outside the WAS that is doing it the load parms and hit on the WAS speed are different...
Enjoy  |
hi fjb_saper the problem is like
Put 2000 messages using MQClient on to Queue takes = 2 hours say.
process 2000 messages using MDB takes = 2 hours
say when they ran one after another it is taking (2+2) 4 hours.
if one start both MQClient and MDB together it should be takeing 2 hours right. But it is taking still 4 hours and more.
Each message commited by MQClient independently not depended on other messages. MDB is running concurrently. then why the slow down.
Thank you. |
|
Back to top |
|
 |
Kareem_khan |
Posted: Thu Apr 07, 2005 9:57 am Post subject: |
|
|
Apprentice
Joined: 09 Jul 2004 Posts: 27 Location: Jackson,MS
|
jefflowrey wrote: |
I guess a side point to my maths post was...
How are you measuring the time taken?
If you are measuring from the start of the first MDB get to the end of the last MDB get, and thinking that that is n*y, then you are forgetting the (n-1)x factor in there. |
I jefflowrey I don't really understood the (n-1)x factor. can you please explain.
Thank you. |
|
Back to top |
|
 |
|