Hello Enrico,

Basically, you are looking at reading "Event Monitoring" book. To summarize briefly: 
after events are allowed (see MQSC book for those attributes I mentioned in my 
previous mail), you will be getting the regular mq messages on 
SYSTEM.ADMIN.PERFM.EVENT queue. The thread you mentioned would be mostly waiting in 
MQGET() on this queue, crack the event messages and respond to getting underflow and 
overflow events accordingly (by requesting publishing thread to suspend or resume 
publishing). The format of the event messages and examples are all in "Event 
Monitoring" book.

Hope this will help,
Pavel



                                                                                       
                                                
                      Fichtner Enrico                                                  
                                                
                      <enrico.fichtner@        To:       [EMAIL PROTECTED]             
                                          
                      ELAXY.COM>               cc:                                     
                                                
                      Sent by: MQSeries        Subject:  AW:      Re: Performance 
observations and questions                           
                      List                                                             
                                                
                      <[EMAIL PROTECTED]                                               
                                                 
                      n.AC.AT>                                                         
                                                
                                                                                       
                                                
                                                                                       
                                                
                      02/18/2004 02:49                                                 
                                                
                      AM                                                               
                                                
                      Please respond to                                                
                                                
                      MQSeries List                                                    
                                                
                                                                                       
                                                
                                                                                       
                                                




Pavel,

I have googled the web for a hint on how to use the events in a C++ app - but couldn't 
find any. The path is clear so far, use *something* in a separate thread that has 
thread-synchro with the thread that does the actual put, when the event occurs simply 
let the putting thread run idle (or whatsoever) until the opposite event rises. 
However, the *something* is the portion that is not clear, is it a API call that 
blocks until the event occurs - or is it a C++ object (wrapped API) that I have to 
use? Any hint on this would be extremely helpful.

Thanks, Enrico

-----Ursprüngliche Nachricht-----
Von: Pavel Tolkachev [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 17. Februar 2004 01:54
An: [EMAIL PROTECTED]
Betreff: Re: Performance observations and questions


Enrico,

Make sure  your application does not check the size of the transmission queue "each 
time" before putting the message; otherwise, it may affect the performance, especially 
if you are interested in highest possible one. An alternative approach (I am not aware 
of *the* right one) would be to enable relevant events (see QDPHIEV, QDEPHHI queue 
attributes and QM's PERFMEV) and wait for them in a separate thread.. then stop the 
publisher. You can use QDPHLOEV to resume publishing in the same manner.

Just my 2c
Pavel




                      "Gurney, Matthew"
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]
                      SFB.COM>                 cc:
                      Sent by: MQSeries        Subject:  Re: Performance observations 
and questions
                      List
                      <[EMAIL PROTECTED]
                      n.AC.AT>


                      02/16/2004 08:51
                      AM
                      Please respond to
                      MQSeries List






Enrico,

IBM provides performance information and tuning recommendations in the support
pacs, this information is not in the manuals.  I would recommend you review:

http://www-306.ibm.com/software/integration/support/supportpacs/product.html

MP6J
MP78

In regard to your performance test, I think the reduction in performance when
maximum queue depth was increased was due to you exceeding the QBufferSize for
your queues.  By default Q's have 64k of memory assigned to them.  If the
total size of all messages upon the queue exceeds 64k then the extra messages
(or perhaps entire q, not sure) are written to disk.  Obviously once the disk
gets involved your performance reduces dramatically.  You can adjust the
QBufferSize in your qm.ini up to 1MB (you need to delete and recreate the q
after making the qm.ini change).

Matt.

-----Original Message-----
From: Fichtner Enrico [mailto:[EMAIL PROTECTED]
Sent: 16 February 2004 10:06
To: [EMAIL PROTECTED]
Subject: Performance observations and questions


For a upcoming project we needed some figures on MQSeries throughput
to base a design decision on. Throughput is very crucial in this
project. On the last weekend I've conducted some tests in this regard.
Some of the results I would like to discuss here.

Facts:

-       the tests where conducted on two Intel machines running W2K with
        MQSeries 5.2, however, the project target platform will be
SPARC/Solaris9
-       the machines used in this test are a PIV 2.8GH and a 2xPIII 450MH,
        both 512MB, one has ultra fast SCSI HD's and one has a pretty fast
        IDE-RAID5 (4x160G)
-       both machines where connected via 100MB LAN through a switch, which
        had only the two machines connected to it
-       message size was 200 byte, I used a string made of repeated numbers
        of 0 through 9
-       queues where not persistent
-       DOS based test applications are written in C++, using IBM's C++
        interface rather than straight C-API
-       the 'putting' application runs in a loop, checking the depth of the
        transmission queue (avoiding overflow), if the depth is below a
certain
        level it puts the message into the remote queue, every n successful
puts
        the time is measured (through windows high frequency counter, very
high
        precision) and the average messages per seconds is put on the screen
-       the 'getting' application runs in a endless loop, with a blocking
'get'
        on the (receiving) local queue, the same average measuring is
implemented
        as in the 'putting' app


Results:

-       the best throughput was 3200msgs/sec measured with one putting
application
        and one getting application at a maximum queue depth of 5000 on both
sides
        (remote and transmission queue), CPU's on both sides where far below
100%
-       overall throughput went down when several 'putting' applications where
        putting to the same queue (of course, taking the sum of all screen
outputs)


Questions:

-       what actually limits the throughput? the number of msgs/sec times the
size
        in this case results in the best case to 625kB/sec which is far beyond
the
        practical throughput of the mentioned LAN
-       is it a correct observation that synchronizing several applications
putting
        into the same queue causes considerably overhead? if so, can this be
assumed
        the same way under SPARC/Solaris9 ?
-       when the max queue depth is set to a high number (e.g. 500000),
throughput
        goes down to a fraction of the max throughput, MQSeries process
amqzlaa0.exe
        'eats' up a lot of CPU power in this case - it seams like that
managing a
        lot of messages in a queue causes also relatively large overhead - is
this
        correct and how does it translate in generally to SPARC/Solaris9 ?
-       what are the recommendations for the setup of MQSeries (installation
itself,
        queues, channels, processes ect.) as well as the message processing
        (applications) where throughput is the only thing that matters?


Thanks in advance,
Enrico Fichtner

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

==============================================================================
This message is for the sole use of the intended recipient. If you received
this message in error please delete it and notify us. If this message was
misdirected, CSFB does not waive any confidentiality or privilege. CSFB
retains and monitors electronic communications sent through its network.
Instructions transmitted over this system are not binding on CSFB until they
are confirmed by us. Message transmission is not guaranteed to be secure.
==============================================================================

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





--

This e-mail may contain confidential and/or privileged information. If you are not the 
intended recipient (or have received this e-mail in error) please notify the sender 
immediately and destroy this e-mail. Any unauthorized copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





--

This e-mail may contain confidential and/or privileged information. If you are not the 
intended recipient (or have received this e-mail in error) please notify the sender 
immediately and destroy this e-mail. Any unauthorized copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Reply via email to