HP 3000 Manuals

Ch 3. System Management [ COMMUNICATOR 3000 MPE/iX General Release 5.0 (Core Software Release C.50.00) ] MPE/iX Communicators


COMMUNICATOR 3000 MPE/iX General Release 5.0 (Core Software Release C.50.00)

Chapter 3  System Management 

Introducing New Workgroups on the HP 3000 

by Shelley Nelson and Susan Campbell 
Commercial Systems Division 

The introduction of the Workload Manager (product number B3879AA) with
Release 5.0 of MPE/iX gives HP 3000 customers the opportunity to more
closely monitor and control CPU scheduling.  In this release, the
traditional five scheduling subqueues (AS, BS, CS, DS, and ES) are
replaced by five system-defined workgroups and users who purchase the
Workload Manager can create additional user-defined workgroups for more
discrete partitioning of the system workload.

This article briefly reviews traditional CPU scheduling, introduces
workgroups, and describes the new and modified MPE/iX commands used in
workload management.  It is intended for two audiences:

   *   Customers who won't use the Workload Manager and who want to know
       how they will be affected by the introduction of workgroups on the
       HP 3000

   *   Customers who will purchase the Workload Manager and who want a
       general, largely conceptual, introduction to the product

Three other articles in this Communicator may be helpful.  The "Workload
Manager Technical Overview" provides more detailed information about the
features, benefits and sample uses of the Workload Manager.  The articles
"CI Commands for the Workload Manager" and "AIF Enhancements" discuss
changes to the CI and AIFs, some of which are due to the Workload
Manager.

Traditional CPU Scheduling 

In traditional CPU scheduling (prior to MPE/iX Release 5.0), system and
user processes run in one of five scheduling subqueues:  the AS subqueue,
BS subqueue, CS subqueue, DS subqueue and ES subqueue.  In this scheme,
scheduling subqueue is both an entity and a process attribute.

The scheduling subqueue as an entity has defined characteristics (such as
base and limit, the minimum and maximum quantum and the boost property)
that determine the scheduling policies of processes running in that
subqueue.  In other words, you can think of the scheduling subqueue as a
dynamically changing collection of processes.  The scheduling subqueue is
a process attribute when, for example, a job is described as "having a
priority of CS" or, for example, when "a program is running at DM
priority".


NOTE Most users do not distinguish between the scheduling subqueue as an entity and as a process attribute, for the simple reason that it hasn't been necessary. However, understanding this difference can facilitate your understanding of the workgroup concept.
Users with system supervisor (OP) or system manager (SM) capability can affect the behavior of the scheduling subqueues as entities. Such users may alter, or tune, the characteristics of the CS, DS and ES scheduling subqueues. (These subqueues, which collect user processes, are also known as the circular scheduling subqueues.) No users, regardless of capability, can alter the characteristics of the AS and BS subqueues, which are reserved for system processes. Users without special capabilities can influence the scheduling subqueue as a process attribute through one of the following means: * Users can choose a scheduling subqueue via the ;PRI= option of the HELLO, RUN or JOB commands. Such a scheduling subqueue change lasts for the duration of the session, program, or job. Furthermore, the system manager constrains the priority that a user can assign to a process (via the MAXPRI option of the NEWUSER, ALTUSER, NEWACCT, or ALTACCT commands). * Users can change the scheduling subqueue of a process via the ;PRI= option of the ALTPROC command. Such a scheduling subqueue change lasts until the process terminates (or until the subqueue is changed again). A process forced to a workgroup in this manner is termed an artificial member rather than a natural member * Programmers or system managers can use one of two Link Editor options to determine a program's scheduling subqueue when they are creating an executable program file: the priority_level, to specify the default execution priority at run time or max_priority_level, to specify the maximum priority a program can have at run time. Within this limit, users can alter the program's priority by issuing the ;PRI= option of the RUN command. * Programmers can use either the AIFPROCPUT routine or the GETPRIORITY intrinsic to change the scheduling subqueue of a process. With Release 5.0 of MPE/iX, scheduling subqueues as entities will be replaced by workgroups. Scheduling subqueue remains a process attribute (users, within the limits of their capabilities, can still assign a process to a specific subqueue). Introducing Workgroups You can think of a workgroup, like its predecessor the scheduling subqueue, as a dynamically changing collection of system or user processes. A workgroup consists of three components: the workgroup name, a set of membership criteria, and specific scheduling characteristics. On all systems updated to Release 5.0 of MPE/iX, there will be five system-defined workgroups, each of which corresponds to one of the five traditional scheduling subqueues. The AS subqueue, for example, becomes the AS_Default workgroup, but it retains its former scheduling characteristics. For customers who don't purchase the Workload Manager, the most noticeable difference is simply one of nomenclature. In virtually all other respects, the use and behavior of system-defined workgroups is the same as scheduling subqueues. A Comparison of Scheduling Queues and System-Defined Workgroups ------------------------------------------------------------------------------------------------ | | | | | | Queue | Corresponding Workgroup | Membership criteria | Scheduling | | | name | | characteristics | | | | | | ------------------------------------------------------------------------------------------------ | | | | | | AS | AS_Default | MEMB_QUEUE=(AS) | Uses default values | | | | | | ------------------------------------------------------------------------------------------------ | | | | | | BS | BS_Default | MEMB_QUEUE=(BS) | Uses default values | | | | | | ------------------------------------------------------------------------------------------------ | | | | | | CS | CS_Default | MEMB_QUEUE=(CS) | Uses default values; | | | | | allows system manager to | | | | | make changes. | | | | | | ------------------------------------------------------------------------------------------------ | | | | | | DS | DS_Default | MEMB_QUEUE=(DS) | Uses default values; | | | | | allows system manager to | | | | | make changes. | | | | | | ------------------------------------------------------------------------------------------------ | | | | | | ES | ES_Default | MEMB_QUEUE=(ES) | Uses default values; | | | | | allows system manager to | | | | | make changes. | | | | | | ------------------------------------------------------------------------------------------------ Each of the system-defined workgroups have one and only one criterion for membership: the scheduling subqueue. This assures complete backward compatibility with previous versions of the operating system. All user processes will fall into one of these system-defined workgroups using the customary scheduling parameters and all existing programs and job scripts will continue to work. (By contrast, system managers who use the Workload Manager can create user-defined workgroups whose membership is based on three different criteria. For more information, read "Creating User-Defined Workgroups" later in this article.)
NOTE The introduction of workgroups warranted changes in the process scheduling algorithms and the default timeslice values for the DS_Default and ES_Default workgroups. From an end-user perspective, these changes will not alter process scheduling. As system manager, these changes allow you more flexible control of priority decay. Read "Process Scheduling Changes", later in this article, for more information.
Displaying Workgroup Information. To display CPU scheduling information, you now have a choice of two commands: SHOWQ or, one of the new commands introduced for the Workload Manager, SHOWWG. The differences between the two commands include: * SHOWQ displays scheduling characteristics of the CS, DS and ES subqueues only, and the format of the display has not changed. Below is an example of the STATUS display of the SHOWQ command; note that the left-most column is still labeled QUEUE. :SHOWQ;STATUS ------QUANTUM------ QUEUE BASE LIMIT MIN MAX ACTUAL BOOST TIMESLICE ----- ---- ----- --- --- ------ ----- --------- CQ 152 200 l 2000 576 DECAY 200 DQ 202 238 2000 2000 2000 OSC 200 EQ 240 253 2000 2000 2000 DECAY 200 * SHOWWG displays scheduling characteristics for all workgroups on the system (including, for those customers using the Workload Manager, any user-defined workgroups you create). Below is an example of the SUMMARY format of the SHOWWG command on a system without user-defined workgroups. Note that the traditional scheduling subqueues are listed in the WORKGROUP column under their system-defined names. (Whereas CQ appeared in the SHOWQ command, here it appears as the CS_Default workgroup.) :SHOWWG @; FORMAT=SUMMARY -----QUANTUM----- TIME CPU % WORKGROUP BASE LIMIT MIN MAX ACTUAL BOOST SLICE PROCS MIN MAX ------------------- ---- ----- ----- ---- ------ ----- ------ ----- --- --- AS_Default 13 99 N/A N/A N/A N/A 1000 45 N/A N/A BS_Default 100 150 N/A N/A N/A N/A 1000 73 N/A N/A CS_Default 152 200 1 2000 576 DECAY 200 320 N/A N/A DS_Default 202 238 2000 2000 2000 DECAY 200 217 N/A N/A ES_Default 240 253 2000 2000 2000 DECAY 200 81 N/A N/A
NOTE Workload Manager users should use SHOWWG instead of SHOWQ to see complete information. Any user-defined workgroups on the system precede the system-defined workgroups in the SUMMARY format.
Tuning a Workgroup. To alter the scheduling characteristics of system-defined workgroups, system managers can choose between the TUNE command and ALTWG, another new command introduced for the Workload Manager. Use TUNE to alter more than one system-defined workgroup, since the command allows you to specify one, two, or all three subqueues. Use ALTWG under the following circumstances: * To change the scheduling characteristics of a user-defined workgroup. In this circumstance, Workload Manager users must use ALTWG since TUNE only modifies three of the system-defined workgroups. * To alter a single system-defined workgroup, whether or not you are using the Workload Manager. ALTWG only examines member processes of the specified workgroup rather than all processes in all workgroups on the system, which means greater efficiency. For example, to use the TUNE command to set the CS subqueue's base to 152, limit to 300, and max quantum (filter) to 300; enter: :TUNE CQ=152,200,300,300 To use the ALTWG command to set the same scheduling characteristics for the CS_Default workgroup, enter: :ALTWG CS_Default, 152,200,300,300 Process Scheduling Changes In order to provide support for workgroups, changes were made to some of the scheduling characteristics for the DS_Default and ES_Default workgroups. New flexibility is available to control priority decay and minor adjustments have been made to the preemption algorithm and default timeslice values. The following information describes these changes, pointing out areas where the system manager can make changes, if desired. Priority Decay. Whereas the DS and ES scheduling subqueues had a fixed quantum value, the DS_Default and ES_Default workgroups perform a dynamic quantum calculation. The default values for the minimum and maximum quantum remain equal to ensure that the quantum will not vary unless the system manager chooses to change the bounds. Each workgroup uses the quantum to derive the amount of priority decay that will be applied to each process. Since Release 3.0, the CS scheduling subqueue has made use of a priority decay algorithm that provided a wider distribution of priority values (decaying by small amounts over time, rather than in large jumps.) This change to a more granular priority decay led to the introduction of the preemption threshold to avoid increasing the number of preemptions. A similar decay algorithm has been applied to all workgroups (including the CS_Default, DS_Default and ES_Default). The algorithm bases priority decay on the quantum divided by a constant, applying smaller amounts of priority decay for smaller amounts of CPU consumption. Preemption. Prior to Release 5.0, the preemption policy was partially based on a comparison of the subqueue attributes of the running process and the potential preemptor. This was due to the assumption that a higher subqueue indicated a more important process. With the introduction of workgroups, it was necessary to simplify the preemption algorithm, removing this dependency on scheduling subqueue attribute. The algorithm continues to compare priorities, only considering preemption if the priority of the potential preemptor exceeds the priority of the running process by the preemption threshold. If system and boosted processes are able to pass these priority checks, they can preempt the running process (if it is preemptable). Timeslice. Due to the change in the preemption algorithm, the default timeslice values for the DS_Default and ES_Default workgroups required modification. Previously, CS subqueue processes had always been able to preempt DS or ES subqueue processes (since they had a higher subqueue), and thus the timeslice values for the DS and ES subqueue were set high. These default values have now been reduced so that processes in these workgroups cannot monopolize the CPU for long periods of time. The timeslice value remains tuneable, however, and the system manager can adjust it to a higher value if it is appropriate to the environment. Overview of the Workload Manager The Workload Manager gives the system manager more control over CPU scheduling by allowing the creation of user-defined workgroups. Using the Workload Manager, the system manager determines: * The total number of workgroups on the system * Which processes become members of each workgroup by specifying up to three different kinds of membership criteria * The behavior of processes in each workgroup by assigning scheduling characteristics * The current workgroup configuration The system manager can also implement a new workgroup configuration on the fly or at a predetermined time (for example, just before a shift change or to handle scheduled batch jobs) to optimize system performance. The system can be partitioned into as many workgroups as needed to control the workload. The workgroups can correspond to a particular set of users, such as those in one department, or to a group of people performing the same kind of task, such as updating a common database. This greatly improves granularity in workload partitioning and, since the system manager can observe individual workgroups, allows close monitoring of system performance. The Workload Manager includes a set of CI commands to create, alter and purge workgroups and to display workgroup information. The AIF:OS package includes a set of AIFs to allow programmatic access to these capabilities. These capabilities provide a basic foundation that can be used by performance tools such as HP GlancePlus and third party offerings, system management tools such as OpenView Console, and more sophisticated Graphical User Interfaces (GUIs). Creating User-Defined Workgroups User-defined workgroups consist of a workgroup name, membership criteria, and scheduling characteristics. The name uniquely identifies the workgroup and typically indicates the kinds of processes which become members of the workgroup, such as Program_Development or Payroll_Batch. Workgroup Membership Criteria. Each process is assigned to its appropriate workgroup at process creation, whenever a process attribute is changed, or after it is explicitly assigned to a workgroup. Membership criteria in the user-defined workgroup include any one or all of the following: * Logon identity, of the form job/session name,user.account. * Program name. * Queue attribute, which is one of AS, BS, CS, DS, or ES. The subqueue attribute is not the same as the scheduling subqueue. The attribute is one element used to determine membership in a workgroup whereas the traditional scheduling subqueue, as an entity, is comparable to the workgroup. Workgroup Scheduling Characteristics. The scheduling characteristics the system manager can assign to a workgroup include the following: * Base and limit priorities * Quantum bounds * Boost property * Timeslice In addition, system managers using the Workload Manager can assign minimum and maximum CPU bounds to user-defined workgroups. For more information about each of these characteristics, and sample uses, refer to the article "Workload Manager Technical Overview" in the "Technical Articles" chapter. New and Modified CI Commands. The Workload Manager includes four new commands and changes to four existing commands. The table below describes the availability and function of each of the commands for customers who purchase the Workload Manager and for those who do not. The Workload Manager and CPU Scheduling Commands ----------------------------------------------------------------------------------------------- | | | | | Command | Behavior with the Workload Manager | Behavior without the Workload | | | | Manager | | | | | ----------------------------------------------------------------------------------------------- | | | | | ALTPROC | Use the new ;WG= option to | You may use the new ;WG= option to | | | explicitly place a process in a | explicitly place a process in one | | | workgroup or allow a process to | of the system-defined workgroups | | | migrate to its natural workgroup. | or allow a process to migrate to | | | All other command functionality is | its natural workgroup. All other | | | unchanged. | command functionality is | | | | unchanged. | | | | | ----------------------------------------------------------------------------------------------- | | | | | ALTWG | Use this new command to alter only | You may use this command in place | | | the scheduling characteristics of | of TUNE to alter only the | | | an existing workgroup. (Use NEWWG | scheduling characteristics of | | | to alter name or membership | three of the system-defined | | | criteria.) | workgroups. You may use all | | | | parameters except minpercent and | | | | maxpercent, which are not | | | | applicable to the five system | | | | defined workgroups. | | | | | ----------------------------------------------------------------------------------------------- | | | | | NEWWG | Use this new command to create one | This command is unavailable. | | | or many new, user-defined | | | | workgroups or to validate the | | | | syntax of an indirect file. | | | | | | ----------------------------------------------------------------------------------------------- | | | | | PURGEWG | Use this command to purge the | This command is available, but it | | | specified workgroups or to execute | generates an error message since | | | all deferred purgescans. | purging the system-defined | | | | workgroups is not allowed. | | | | | ----------------------------------------------------------------------------------------------- | | | | | SHOWPROC | The DETAIL display format of this | The DETAIL display format of this | | | command has been modified to show | command has been modified to show | | | the process' workgroup and | the process' workgroup and | | | attributes determining workgroup | attributes determining workgroup | | | membership. | membership. | | | | | ----------------------------------------------------------------------------------------------- Table 3-0. The Workload Manager and CPU Scheduling Commands (cont.) ----------------------------------------------------------------------------------------------- | | | | | Command | Behavior with the Workload Manager | Behavior without the Workload | | | | Manager | | | | | ----------------------------------------------------------------------------------------------- | | | | | SHOWQ | Use this command to display | Same behavior with or without the | | | scheduling data for all processes | Workload Manager. | | | and the scheduling characteristics | | | | of the CS_Default, DS_Default and | | | | ES_Default workgroups. This | | | | command has not been changed and | | | | the three system-defined | | | | workgroups appear as traditional | | | | scheduling subqueues in the | | | | left-most column of the STATUS | | | | display. | | | | | | ----------------------------------------------------------------------------------------------- | | | | | SHOWWG | Use this new command to display | Use SHOWWG in place of SHOWQ to | | | scheduling and process data for | see scheduling characteristics of | | | the specified workgroup(s), and to | all five system-defined | | | create the indirect file used as | workgroups. | | | input for the NEWWG command. | | | | | | ----------------------------------------------------------------------------------------------- | | | | | TUNE | Use ALTWG in place of TUNE to | Use TUNE to change the scheduling | | | change the scheduling | characteristics of CS_Default, | | | characteristics of a workgroup. | DS_Default and ES_Default | | | | workgroups. The function and | | | | syntax of the command is | | | | unchanged. | | | | | -----------------------------------------------------------------------------------------------


MPE/iX Communicators