Dispatcher tasks

This topic contains example data for the dispatcher tasks statistics, and information about how to interpret the data.

The format of the dispatcher task block is described in structure qct_dsp in the C programming language header file thlqual.SCSQC370(CSQDSMFC), and in assembler macro thlqual.SCSQMACS(CSQDQCTA).


Example data

Task, Type, Requests, Busy %,  CPU used, CPU %, "avg CPU", "avg ET"
  ,   ,       ,     ,   Seconds,    ,  uSeconds, uSeconds
   0, DISP,    26587,    0.4,  0.592463,   0.1,        22,      127
   1, DISP,    26963,    0.3,  0.588092,   0.1,        22,      112
   2, DISP,   864329,    2.7,  2.545668,   0.3,         3,       28
   3, DISP,    26875,    0.4,  0.590825,   0.1,        22,      120
   4, DISP,    26874,    0.4,  0.603285,   0.1,        22,      123
Summ, DISP,   971628,    0.8,  4.920332,   0.1,         5,       38
The example data shows that there were five dispatchers. A channel is associated with a dispatcher when it starts. The channel initiator tries to distribute work across all the dispatchers when allocating a channel to a dispatcher. This example shows that one dispatcher is processing more requests than other dispatchers. This is normal, as some channels might stop, so the dispatcher is processing fewer channels, and some channels can be busier than others.

  • 4.9 seconds of CPU were used by the dispatchers.
  • The average request used 5 microseconds of CPU and took 38 microseconds elapsed time.
  • A dispatcher is used to send and receive data over a communications network, and this is not usually dependent on external events. The average elapsed time should, therefore, be close to the average CPU time used. If the CHINIT is delayed due to lack of CPU, then the ratio of average Elapsed Time to average CPU time is much larger, compared to when the CHINIT is not delayed for CPU.
  • The average CPU used per request depends on the message traffic. For example, bigger messages use more CPU than smaller messages.

The fields are calculated from:

  • Duration: qwhs.qwhsdurn
  • Requests : qctreqn
  • Busy %: qcteltm and duration
  • CPU used: qctcptm
  • CPU %: qctcptm and duration
  • Average CPU: qctcptm and qctreqn
  • Average ET: qcteltm and qctreqn

Usually, the number of dispatchers should be less than, or equal to, the number of processors in the LPAR. If we have more dispatchers than processors in the LPAR they might compete for CPU resources. For more information about tuning the system, see SupportPac MP16.

Channels have an affinity to a dispatcher, so you might find that some dispatchers process many more requests than another dispatcher.

We can use the ALTER QMGR CHIDISPS() command to change the number of dispatchers used. Any change comes into effect the next time the channel initiator is started.

Parent topic: Channel initiator statistics data records