|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Overhead to Expire Messages |
« View previous topic :: View next topic » |
Author |
Message
|
fordcam |
Posted: Tue Nov 26, 2002 12:04 pm Post subject: Overhead to Expire Messages |
|
|
 Apprentice
Joined: 28 Mar 2002 Posts: 35 Location: MGIC
|
We've had some performance problems in a synchronous app lately. It's a VB-NT client connected to a Solaris concentrator. Messages are put to a queues that go thru WMQI on Solaris. Flows convert XML to Cobol, and forward them to the mainframe. CICS programs do some DB2 work, and send replies that follow the same path in the opposite direction. Things run fine nearly all of the time.
But - We've noticed that these round trips slow way, way down at noon and 4:00 PM on Monday, Thursday and Friday only. After much research, we found a Perl script that runs on the WMQI server every day at noon and 4:00. The script goes through a queue and does GETs for a length of 0. This queue is an output only, archive queue, with messages that expire 3 days after they're put. The purpose of the script is to allow messages older than three days to expire.
Our theory is that the overhead of expiration is slowing down WMQI. The reason Tuesday and Wednesday don't cause the problem is because few messages expire on those days (since the only messages eligible to expire would have been put on the previous weekend). We turned this script off, and will know on Friday if this is the problem.
Our WMQI server is a dual processor machine loaded with memory. It's very surprising to me this script could hurt throughput this much, but it certainly looks that way. Has anyone seen this? Is there any info as to what sort of overhead is involved in expiring messages? |
|
Back to top |
|
 |
nimconsult |
Posted: Tue Nov 26, 2002 11:52 pm Post subject: |
|
|
 Master
Joined: 22 May 2002 Posts: 268 Location: NIMCONSULT - Belgium
|
Well yes I think that discarding expired messages may be a significant overhead. I would say that the overhead is close to retrieving a message out of syncpoint.
In general the overhead is not significantly noticed, because messages with expiry are most of the time not persistent. (messages with expiry are typically used in request/reply dialogs).
My speculation: in your case apparently you use the expiry to remove a significant number of very old messages. These messages are most propably swapped out to disk (they are for sure on disk if they are persistent), so discarding them generates an important I/O activity which may have an impact on the rest of your applications. Because I think this operation should be I/O bounded I do not think that you should have problems regarding the CPU consumption. Can you confirm that the system slow down is caused by I/O activity and not by CPU consumption?
In the meantime I can propose an easy solution: why don't you clean the queue at a period where the activity is low (during the night for instance)?
Nicolas _________________ Nicolas Maréchal
Senior Architect - Partner
NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|