HP 3000 Manuals

TUNE and SHOWQ Changes [ COMMUNICATOR 3000/XL XL RELEASE 3.0 ] MPE/iX Communicators


COMMUNICATOR 3000/XL XL RELEASE 3.0

TUNE and SHOWQ Changes 

by Susan Campbell 
Commerical Systems Division 

This release of MPE XL exposes additional values that a system manager
can utilize to achieve optimal system performance.  Until now, there was
a single timeslice value for the entire system.  This timeslice value
determines the length of time a CPU-bound process can monopolize the CPU.
Now each scheduling queue has its own timeslice value.  This provides
additional flexibility, because different queues can have different
timeslice values.  A system manager will be able to modify the timeslice
values for the CS, DS, and ES queues via the TUNE command.  The SHOWQ
command has been extended to display these timeslice values, as well as
the actual quantum value for the CS, DS, and ES queues.

TUNE COMMAND 

The TUNE command has been extended to allow you to tune the timeslice
values for the CS, DS, and ES queues.  The existing TUNE parameters of
queue base, queue limit, minimum quantum, maximum quantum, and boost
property (DECAY or OSCILLATE) remain unaltered.

The timeslice value represents the maximum number of milliseconds for
which a CPU-bound process running in the specified queue can monopolize
the CPU. When a process in the specified queue has held the CPU for the
timeslice, an interrupt is generated.  This interrupt triggers the
Dispatcher to examine the running process.  The Dispatcher will make any
necessary priority adjustments, and proceed to find the next process to
launch.  It is possible for the timesliced process to be relaunched,
providing it is the highest priority process that requires the CPU.

Processes running in the AS and BS queues are system processes or very
high priority user processes and are given a large timeslice value.  The
timeslice values for the CS, DS, and ES queues can be altered by you, but
default to a value of 200 milliseconds for the CS queue, and two seconds
for the DS and ES queues.  A value of two seconds might seem excessive,
but remember that higher priority CS queue processes will be able to
preempt the jobs in the DS and ES queues.  These higher priority queue
processes will not be forced to wait for such jobs to timeslice.

When a system manager wishes to allow high priority DS and ES queue
processes to compete with lower priority CS queue processes, the queues
might be tuned to overlap.  When this tuning is done, it is also
necessary to use the TUNE command to adjust the quantum bounds and the
timeslice value.  The minimum and maximum quantum values bound the value
of the actual quantum.  The quantum determines the rate of priority
decay.  Processes in a queue with a quantum value of one second will
decay more rapidly than processes in a queue with a quantum value of two
seconds.  If the quantum values are not adjusted, the processes will
decay at different rates.  If the timeslice values are not adjusted,
processes in one queue may negatively affect the response times of
processes in another queue, as explained below.

Consider a system with the CS and DS queues tuned to overlap in the
priority range from 180 to 200.  Let the timeslice values remain at the
following defaults:  the CS timeslice is 200 milliseconds and the DS
timeslice is two seconds.  When a DS queue process at priority 180 is
launched, it can hold the CPU for two seconds (if it is CPU-bound) before
being timesliced.  If a CS queue process at priority 190 awakens 20
milliseconds after the DS queue process is launched, it cannot preempt
the DS queue process because it has lower priority.  If the DS queue
process is CPU-bound, it will monopolize the CPU, forcing the CS queue
process to wait almost two seconds.  As illustrated by this example, an
inappropriate choice of timeslice values can impact response time.

By default, the CS, DS, and ES queue do not overlap.  In this case, the
default timeslices values work to improve performance.  CS queue
processes can preempt jobs in the DS and ES queues when they need the
CPU, but the CPU-bound batch jobs will be able to run for two seconds
before yielding the CPU to the next job.  This enables the batch jobs to
make forward progress, rather than thrashing if each batch job were to
get the CPU for only 200 milliseconds.

SHOWQ COMMAND 

The SHOWQ command has been modified to display the actual quantum value
and the timeslice value for each of the CS, DS, and ES queues.  Through
the TUNE command, the user is able to set the minimum quantum and maximum
quantum values.  The actual quantum value is bounded by these limits.
For the CS queue, the quantum value (also known as the SAQ) is
dynamically adjusted each time a user process in the CS queue completes a
transaction, and represents the average transaction length of user
processes in the CS queue.  The CS queue quantum is bounded by the
minimum and maximum quantum values tuned by the user.  The DS and ES
queues have fixed quantum values.

The timeslice value is the value that has been set by the system manager
via the TUNE command (or the system default value).  This value
represents the number of milliseconds for which a CPU-bound process in
that queue can monopolize the CPU.

In order to display this additional data, the format of the SHOWQ display
has been altered.  UDCs, command files, and program scripts that are
dependent on the old SHOWQ format will require modification.

With the display of this additional data, system managers will be able to
determine the average transaction time of user processes running in the
CS queue.  This can be done by setting the minimum quantum to a value of
one, allowing the system to reach a steady state, and examining the value
of the actual quantum for the CS queue.

For the syntax of the modified TUNE and SHOWQ commands, please refer to
the related article in the "Technical Articles" section in this
Communicator.



MPE/iX Communicators