900 Series HP 3000 Computer Systems Using the HP 3000 Workload Manager ABCDE HP Part No. B3879-90001 Printed in U.S.A.
The information contained in this document is subject to change without notice. Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability or tness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for direct, indirect, special, incidental or consequential damages in connection with the furnishing or use of this material.
Printing History The following table lists the printings of this document, together with the respective release dates for each edition. The software version indicates the version of the software product at the time this document was issued. Many product releases do not require changes to the document. Therefore, do not expect a one-to-one correspondence between product releases and document editions. Edition Date Software Version First Edition January 1995 C.50.
Preface This manual, Using the HP 3000 Workload Manager , is an introduction to using the Workload Manager on the 900 Series HP 3000 computer systems. It provides background information on traditional CPU scheduling (prior to Release 5.0), explains workgroups, and describes the procedures and processes for partitioning the system workload into workgroups. This manual is written primarily in task format.
Conventions UPPERCASE In a syntax statement, commands and keywords are shown in uppercase characters. The characters must be entered in the order shown; however, you can enter the characters in either uppercase or lowercase.
Conventions (continued) [ ... ] In a syntax statement, horizontal ellipses enclosed in brackets indicate that you can repeatedly select the element(s) that appear within the immediately preceding pair of brackets or braces. In the example below, you can select parameter zero or more times. Each instance of parameter must be preceded by a comma: [,parameter][...
Contents 1. Introducing the Workload Manager Introducing the Workload Manager . . . . . Traditional CPU Scheduling . . . . . . . . Introducing Workgroups . . . . . . . . . . System-de ned workgroups . . . . . . . User-de ned workgroups . . . . . . . . Workgroup name . . . . . . . . . . . Membership in a user-de ned workgroup Scheduling characteristics of user-de ned workgroups . . . . . . . . . . . . New and Modi ed Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Creating Workgroups Adding New Workgroups . . . . . . . . . . . To create a new workgroup . . . . . . . . . To place the workgroup in the ordered list . . . To display the workgroup . . . . . . . . . . Creating a New Workgroup Con guration . . . . To keep a copy of the current workgroup con guration . . . . . . . . . . . . . . To edit the con guration le . . . . . . . . . To validate the indirect le . . . . . . . . . To replace the con guration now . . . . . . .
A. Troubleshooting Troubleshooting Workgroup Problems Uncaptured process . . . . . . . Starving workgroup . . . . . . . Starving process . . . . . . . . CPU minimum not met . . . . . System or process hang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2 A-2 A-3 A-4 A-5 A-5 B.
Tables 1-1. A Comparison of Scheduling Subqueues and System-De ned Workgroups . . . . . . . . 1-2. Workload Manager and CPU Scheduling Commands 2-1. A Set of Sample Workgroups . . . . . . . . . .
1 Introducing the Workload Manager This chapter introduces you to the Workload Manager, the new CPU monitoring and scheduling tool available for Release 5.0 of MPE/iX.
Introducing the Workload Manager The Workload Manager gives system managers greater control over CPU scheduling at the process level than that provided by traditional scheduling subqueues. As a result, system managers can monitor and e ectively manage system performance. For example, the Workload Manager allows system managers to provide a designated level of service to their customers, such as maintaining an average response time or providing a certain degree of throughput.
Traditional CPU Scheduling In traditional CPU scheduling (prior to MPE/iX Release 5.0), system and user processes run in one of ve 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 .
Introducing Workgroups You can think of a workgroup, like its predecessor the scheduling subqueue, as a dynamically changing collection of processes. A workgroup consists of three components: the workgroup name, membership criteria, and speci c scheduling characteristics. There are two types of workgroups which you can have on your system: System-de ned workgroups, which come with your system and cannot be deleted.
Each of the system-de ned workgroups has one and only one criterion for membership: the queue attribute which speci es its scheduling subqueue. This assures complete backward compatibility with previous versions of the operating system. All user processes will fall into one of these system-de ned workgroups using the customary scheduling parameters and all existing programs and job scripts will continue to work.
Scheduling characteristics of user-defined workgroups The scheduling characteristics the system manager can assign to a workgroup include the following: base and limit priorities quantum bounds boost property timeslice minimum and maximum CPU percentage bounds These characteristics, with the exception of minimum and maximum CPU percentage bounds, should be familiar to system managers since they are characteristics of the traditional scheduling subqueues set with the TUNE command.
Table 1-2. Workload Manager and CPU Scheduling Commands (continued) Command Behavior ALTWG Use this new command to alter any of the scheduling characteristics of an existing workgroup, including base and limit priorities, quantum bounds, boost property, timeslice, and CPU percentages. The processes belonging to that workgroup will be scheduled in accordance with the new parameters. (To alter the name of a workgroup or its membership criteria, you must use the NEWWG command.
2 Planning for Workgroups This chapter gives the system manager guidelines for evaluating current system use and performance, and suggests how to translate this information into an e ective workgroup con guration.
Planning Workgroups To evaluate current system use To use the Workload Manager e ectively, you need to know who uses your system now, how they use it, and how to translate this information into an e ective workgroup con guration. In this section, you'll nd questions and suggestions to help you gather this data. Knowledge of the current system workload is essential to the e ective use of the Workload Manager.
Suppose you wanted to begin by creating three user-de ned workgroups, one for a server, one for data entry clerks who log orders for retail products, and one for programmers who are editing their application les. The workgroup membership criteria might look like this: Table 2-1. A Set of Sample Workgroups Description Workgroup Name Server workgroup Server Membership Criteria MEMB_PROGRAM=(SERV.APPL.DEV) Order entry workgroup Retail online MEMB_LOGON=(@.
Both the membership criteria that you do specify, and those that you don't specify, a ect the placement of processes in a workgroup. That's because if you omit a category, the Workload Manager treats it as a match when it is determining membership. (For example, to allow a process with any logon potentially to become a member of a workgroup, don't specify MEMB_LOGON= when you create the workgroup.) In general, to capture a broader population of processes, specify fewer membership criteria.
PIN 100 200 300 400 500 600 700 Process Attributes Logon Queue Program File CMTEST, CHUCK.TEST CS EDITOR.PUB.SYS NMTEST, DOUG.MYTEST CS EDITOR.PUB.MYTEST NMTEST, SLC.TEST BS EDITOR.PUB.SYS CMTEST, DOUG.MYTEST BS HPEDIT.PUB.SYS NMTEST, SLC.MYTEST BS QEDIT.PUB.SYS SUSAN, SLC.PRAPP CS PAYROLL.PUB.PRAPP JREPORT, GREG.MYTEST DS PAYROLL.RPT.
If you need to review the function and use of any of the traditional scheduling parameters, read the next section. It explains each of them in detail, as well as describing the new CPU percentage bounds. An Overview of Scheduling Characteristics With Release 5.0, the MPE/iX Dispatcher remains priority-driven, dispatching processes to the CPU(s) based on their priority. The MPE/iX Scheduler controls process priorities in accordance with the scheduling parameters established by the system manager.
Note The introduction of workgroups dictated a simpli cation of the preemption algorithm. Because the assumption that a higher subqueue indicates a more important process is no longer valid, the dependency on scheduling queue attribute was eliminated. 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.
Timeslice The timeslice is used to ensure that one process does not monopolize the CPU for long periods of time. When a process is launched, the Dispatcher guarantees that it will not run for more than its timeslice value (even if it is CPU-bound). The Dispatcher will actually take the CPU away from the process if it is still running after the timeslice interval has passed (provided that the process can be interrupted). Note Before Release 5.
Gathering Data for the Workload Manager Using GlancePlus to gather information In the following sections, you'll learn some techniques for using HP GlancePlus with the Workload Manager. You can use the performance tool of your choice to evaluate current system performance and, once you have set up workgroups on your system, evaluate their behavior.
Assigning one workgroup to many application classes There may be a situation in which you want one application class to provide data on multiple workgroups. For example, suppose that you have de ned two workgroups on your system, Billing and Payroll, but for the purpose of performance evaluation, you can lump them into one application called Finance.
3 Creating Workgroups This chapter teaches you how to create user-de ned workgroups for your system.
Using Workload Manger, you can create an essentially unlimited number of user-de ned workgroups for your system. When you create a workgroup, you specify three kinds of information: the workgroup name, membership criteria, and scheduling characteristics. Adding New Workgroups You can use the NEWWG command to add a new workgroup to the current con guration or to replace the entire workgroup con guration with a new one.
The membership criteria must appear in the order MEMB_LOGON, MEMB_PROGRAM and MEMB_QUEUE when the keywords are not speci ed and, in this case, since MEMB_QUEUE isn't speci ed, a comma is used as a placeholder. The ampersand character (&) appears at the end of the command lines in the examples above to indicate continuation. If you type the command on one single line (so that it wraps), omit the ampersand.
For a process to become a natural member of the Payroll_online workgroup, the user must logon to the Payroll account with any user name. (The user can also choose a session name. Since it isn't speci ed in the membership criteria, any session name is considered a match.) The Payroll_online workgroup has a base priority of 170, a limit of 190, the default minimum and maximum quantum of 1 and 2000 milliseconds, the default boost property (DECAY), and the default timeslice of 200 milliseconds.
Creating a New Workgroup Configuration As you have seen, you use the NEWWG command to add a new workgroup to the current con guration. You can also use it to replace the existing set of workgroups with a new set. Substituting one workgroup con guration for another is useful when you can anticipate typical changes in the workload. For example, your system may run more e ciently if you introduce a new workgroup con guration at 6 p.m.
You can edit the le so that it de nes a new workgroup con guration. Or, you can keep it as a \backup copy" of the current con guration. Either way, you introduce these workgroups to the system by specifying the le on the NEWWG command line. The output that you get with the SHOWWG @;FORMAT=WGFILE command is a snapshot of the current system con guration. The true system state is kept internally, in tables, and not in a user le.
************************* COMMENT COMMENT Workgroup = BS_Default COMMENT ;Memb_Queue = BS COMMENT ;Base = 100 COMMENT ;Limit = 150 COMMENT ;MinQuant = N/A COMMENT ;MaxQuant = N/A COMMENT ;Boost = N/A COMMENT ;Timeslice = 1000 COMMENT ;MinCPUPCT = N/A COMMENT ;MaxCPUPCT = N/A COMMENT ************************* COMMENT COMMENT Workgroup = CS_Default COMMENT ;Memb_Queue = CS COMMENT ;Base = 152 COMMENT ;Limit = 154 COMMENT ;MinQuant = 1 COMMENT ;MaxQuant = 2000 COMMENT ;Boost = DECAY COMMENT ;Timeslice = 200 CO
Use the text editor you prefer to edit the con guration le that you produced from the SHOWWG command. Use the existing workgroup speci cations as a guideline to add new workgroups to the le or make any necessary changes to the existing workgroups. While you are editing the con guration le, remember the following points: You cannot change or delete any of the system-de ned workgroups via the NEWWG command, which is why they are preceded with the COMMENT keyword.
To replace the configuration now To replace the existing con guration with a new one now, enter the NEWWG command and specify the indirect le that contains the new workgroup information on the command line. In this case, the syntax of the NEWWG command is: NEWWG ^ lename Make certain that you precede the indirect le name with the caret (\^"), otherwise the CI will interpret the indirect le as the name of a workgroup.
To replace the configuration based on conditional criteria Altering a Workgroup You could also create a job that conditionally introduces a new workgroup con guration. For example, suppose you want to introduce a workgroup con guration that allocates a minimal amount of CPU to batch jobs, giving preference to your online data entry sta . However, suppose also that there was problem with the batch runs the night before, and they have not yet completed.
Note To create an artificial workgroup member If you get an error message when attempting to set the minimum or maximum CPU percentages, issue a SHOWWG command to nd out what other minimum and maximums have been set. For minpercent , the total for all workgroups cannot exceed 99 percent and, as a result, the Workload Manager will not allow you to set a minimum CPU percentage that raises this sum beyond 99.
You can see which processes are arti cial members of a workgroup with either the PROCS format of the SHOWWG command, or with the DETAIL format of the SHOWPROC command. In both cases, arti cal workgroup members have a percent sign (%) next to their process identi cation number.
The options to the PURGEWG command allow you to determine what to do in case there is an error, how much control you have over the purge operation, and how much information you see.
For example, to purge the workgroup Payroll_batch and defer scanning, enter: PURGEWG Payroll_batch;NOPURGESCAN Once you have issued the PURGEWG command with the NOPURGESCAN option, the workgroup becomes \purge-pending". Purge-pending workgroups are those which still have member processes, and they remain in a purge- pending state until the member processes are moved via a purgescan, until you explicitly reassign them to another workgroup, or until they die.
4 Tuning System Performance This chapter teaches you how to use workgroups to optimize system performance. In particular, it discusses how you can use the Workload Manager to handle predictable changes in CPU demand, how to respond to changes in the workload, and how to provide a more consistent level of service to your users.
Scheduling Anticipated Workload Changes Often, system managers can predict the behavior of their system workload. You know the performance requirements at 9 a.m. di er from those at 6 p.m. and that the weekday workload isn't the same as the weekend workload. The Workload Manager allows you to plan for such changes in the workload and adjust the workgroup con guration accordingly.
To improve a workgroup's CPU access A situation may arise in which you need to give an entire workgroup improved access to the CPU. For example, suppose it is a particularly heavy day for orders and your telephone sales representatives need improved response time. To improve a workgroup's access to the CPU, you can use the ALTWG command to do any of the following: Increase the base and limits of the workgroup to higher priorities.
To modify CPU access for a single process There may be occasion when you need to single out a process and move it to a higher or lower priority. For example: You may need to increase a process' priority if an online user has a critical task and needs faster response time, or if a batch job needs to nish quickly. You may need to decrease a process' priority if it is in an in nite loop that is critical and cannot be killed, or if a CPU intensive process is performing a task that isn't time-critical.
Or, for example to move a CPU-bound process that is impacting other users to a low priority, enter: ALTPROC pin;WG=Lowpri_procs Note Providing More Consistent Response Times Caution Another way to guarantee improved access to the CPU is to de ne a larger minimum CPU value, as well as high base and limit priorities, for the Hipri_procs workgroup. Then, move processes to that workgroup on an \as needed" basis. The Workload Manager features can be used to ensure more consistent response times for users.
To control other workgroups Balancing Workload During System Consolidation To partition the workload on the target system If processes in one workgroup (workgroup_1) are experiencing inconsistent response times, it may be due to the in uences of another workgroup (workgroup_2). For example, workgroup_2 may be set to a higher priority and contain processes that perform long transactions, leading to increased response times for the processes in workgroup_1 .
To manage user expectations Another area of concern relates to the e ect of the consolidation itself on user's experience and expectations of system performance. Consider a situation where you are consolidating Systems A, B, and C onto System D over a period of time. You plan to bring over System A on the rst weekend, System B on the second weekend, and System C on the nal weekend.
5 Commands Reference This chapter describes the four new commands you use to create, modify, display and delete workgroups: NEWWG, ALTWG, SHOWWG, and PURGEWG. It also documents the four existing commands a ected by the introduction of workgroups on the HP 3000, ALTPROC, SHOWPROC, SHOWQ and TUNE, and notes the new features and changes needed to accommodate them. The eight commands are listed in alphabetical sequence.
ALTPROC Changes characteristics of the speci ed processes. Currently, a process' priority, queue attribute, and workgroup may be changed. (Native Mode) ALTPROC 2 SYNTAX 22 42 3 3 ;WG= 2 PIN= 3 ;PRI= pri PARAMETERS 3 pinspec 2 3 6 (pinspec ,pinspec . . . ) 7 6 7 ALTPROC 4 2 5 3 jobspec 3 2 ;JOB= (jobspec ,jobspec . . . ) 2 3 workgrp ;USER ;ANYUSER pinspec 5 NATURAL_WG ;TREE ;NOTREE ;SYSTEM 3 The process(es) you want to alter.
ALTPROC The USER and ANYUSER options apply only to jobspec and only if jobspec is wildcarded. The USER option, which is the default, alters only processes matching the user's name, while the ANYUSER option alters all processes matching the wildcarded jobspec. For example, if the user's name is STEVE.UI and you enter the command shown below, then only job processes logged on as STEVE.UI are altered.
ALTPROC The pri value may be one of the following: A scheduling queue value fBS,CS,DS,ESg sets the queue attribute of the target process(es). If a user-de ned workgroup does not capture the process, then the process will fall into to the corresponding system-de ned default workgroup at the base priority (subject to decay as it consumes CPU). To assign a scheduling queue value, you must have OP capability. A queue manager value fBM,CM,DM,EMg sets the queue attribute of the target process(es).
ALTPROC A process remains an arti cial member of its assigned workgroup until either the workgroup is purged or its explicit assignment is changed (via ALTPROC or an AIF call). An arti cial member is not a ected by a system-wide scan or by the changing of its process attributes used to determine workgroup membership. A workgroup speci cation requires SM capability and can only be used to modify the workgroup assignment of user processes.
ALTPROC OPERATION To execute the ALTPROC command, you must have System Supervisor (OP) or System Manager (SM) capability. SM capability is necessary to alter system processes, for the WG= option, for certain speci cations to the PRI option, and to increase a process' priority above MAXPRI. You may issue the ALTPROC command from a session, job, program, or while in BREAK. Pressing 4Break5 aborts the execution of this command.
ALTWG Alters the scheduling characteristics of an existing workgroup. (Native Mode) ALTWG 2 SYNTAX 22 22 22 22 22 Note 3 ALTWG WORKGROUP= workgrp 3 ;BASE= base 3 22 3 ;MINQUANT= min ;BOOST= 38 DECAY 3 3 22 3 3 ;MAXQUANT= max 93 8 ;TIMESLICE= tslice 3 3 ;LIMIT= limit OSCILLATE 3 9 3 ;MINCPUPCT= minpercent 3 22 3 ;MAXCPUPCT= maxpercent 3 To alter the membership criteria of a workgroup, you must use the NEWWG command.
ALTWG max DECAY OSCILLATE tslice minpercent The maximum number of milliseconds that a process may use the CPU before its priority is reduced. The max is an upper bound for the quantum value, which determines the rate of priority decay for processes within the workgroup. The value of max must be greater than or equal to the value of min . Values range between 1 and 32,767, inclusive. Sets the workgroup to the default decay behavior associated with circular scheduling subqueues.
ALTWG maxpercent The maximum percentage of time that the CPU is available to the workgroup's member processes. The workgroup will be limited to this maximum percentage of time even if no other process in another workgroup is ready to run . In other words, a workgroup will be limited to this maximum percentage even if the system must remain idle for the remainder of the time.
ALTWG The scheduling characteristics de ne the scheduling policies which govern processes within the workgroup. The MPE/iX Dispatcher is priority-driven, allocating a CPU to the highest priority process that is ready to run. The MPE/iX Scheduler determines process priorities in accordance with workgroup scheduling characteristics. Each workgroup has a base and a limit , de ning the priority range for processes within that workgroup.
ALTWG EXAMPLE To set the Program Development workgroup's base to 158, limit to 168, and boost priority to decay, enter: :ALTWG Program_Development, 158, 168, , , decay To set the Program Development workgroup's timeslice to 500 milliseconds, enter: :ALTWG Program_Development ;timeslice=500 Related Information Commands NEWWG, PURGEWG, SHOWWG, TUNE, SHOWQ, ALTPROC, SHOWPROC Manuals MPE/iX Intrinsics Reference Manual (32650-90028) Commands Reference 5-11
NEWWG Creates a new, user-de ned workgroup either directly, via command line input, or indirectly, through a le.
NEWWG ;VALIDATE Refer to the File Format section below for a description of the parameters valid for use within the indirect le (they include all of the parameters valid for the command-line speci cation except POSITION, since POSITION is actually the workgroup's position within the indirect le). Use this option to check the indirect le for the correct syntax and report any errors. The workgroup con guration in the le is not invoked.
NEWWG logon Speci es the job/session, user, and account name of potential workgroup members. The job/session name is optional, but if speci ed, you must enclose the entire logon string in double quotes (" "). The user and account names are required. You may use wildcards in any part of the logon string. The format is shown below: MEMB_LOGON = (logonname [,logonname]...) Where logonname is: "job/session name, username.acctname" or username.
NEWWG base limit min max DECAY OSCILLATE An integer from 150 to 255 specifying the highest priority at which processes executing in the workgroup begin their Dispatcher transactions. Priority is inversely related to the integer: a higher-priority process has a lower number. While the full range is provided for compatability, avoid setting the base priority between 150 and 152, since user processes running at priorities greater than 152 can adversely a ect system performance.
NEWWG tslice minpercent maxpercent existingwg The timeslice is the maximum number of milliseconds a process in the workgroup can hold a CPU before returning to the Scheduler to have its priority recalculated. Values must be multiples of 100, with a minimum value of 100 and a maximum value of 32700. The timeslice is an optional scheduling characteristic with a default value of 200 milliseconds. The minimum percentage of time that the CPU is available to the workgroup's member processes.
NEWWG Note FILE FORMAT You may wish to de ne workgroups with \dummy" membership criteria that would never match process attributes. Such workgroups will not have natural members, but you can use them as the target of an ALTPROC;WG= command when you need to quickly move a process that is a ecting system performance. Such workgroups should be placed after all user-de ned workgroups to minimize the number of workgroups that must be scanned to determine process workgroup membership.
NEWWG You must specify the workgroup name, at least one membership parameter, and the base and limit parameters. Multiple speci cations are permitted within a parameter. Use commas as delimiters and an \&" or 4Return5 to indicate the continuation of a speci cation onto a new line. Parameters that you do not specify are assumed matches. For example, if you only speci ed MEMB_QUEUE=(CS), the workgroup would capture all processes with the CS queue attribute (with any logon, running any program).
NEWWG OPERATION The system manager creates workgroups to re ect a partitioning of the system workload and control the allocation of the CPU to user processes on the system. There is essentially no hard limit to the maximum number of workgroups that a system may have. The system will always be con gured with ve default workgroups, which exist to support system processes and to provide backward compatibility.
NEWWG The SHOWWG command o ers a format option, WGFILE, whose output has a format suitable as input to NEWWG. You may use CI I/O redirection to place the output from SHOWWG into a le. For example, SHOWWG @;FORMAT=WGFILE > lename , and then issue the SAVE command to save it. Creating a new workgroup can a ect the workgroup assignment of existing processes. The NEWWG command forces the Scheduler to scan all processes on the system and adjust their workgroup membership as necessary.
NEWWG EXAMPLE The following example creates a user-de ned workgroup named Program Development: :NEWWG Program_Development; memb_program= (editor.pub.sys,& qedit.@.@, hpedit.@.@);memb_logon=("nm@,@.mytest"); base=& 160; limit= 170; boost= oscillate Or, using positional parameters instead of keywords, you would enter: :NEWWG Program_Development, "@nm@,@.mytest",& (editor.pub.sys,qedit.@.@,hpedit.@.
PURGEWG Purges the speci ed user-de ned workgroup(s). (Native Mode) PURGEWG 2 SYNTAX 38 WORKGROUP= workgrp PURGEWG 9 3 2 8 (workgrp ,workgrp . . . ) 2 ;ONERROR= 3 CONTINUE QUIT 9 93 28 < ;CONFIRM = 4 ;NOCONFIRM 5 : ; ;CONFIRMALL PARAMETERS ;NOSHOW ;SHOW ;SHOWERRORS ;NOSHOWERRORS ;PURGESCAN ;NOPURGESCAN workgrp CONTINUE QUIT CONFIRM NOCONFIRM 5-22 Commands Reference The user-de ned workgroup(s) that you want to purge. This is a required parameter.
PURGEWG CONFIRMALL NOSHOW SHOW SHOWERRORS NOSHOWERRORS PURGESCAN NOPURGESCAN OPERATION When you are purging multiple workgroups from a session, use the CONFIRMALL option to verify each workgroup before the purge is executed. You may respond with any of the following: \Y" or \YES" To purge the workgroup \N", \NO", or 4Return5 To retain the workgroup \Q", \QUIT", or To stop the PURGEWG command 4Break5 The CONFIRMALL option is ignored in jobs and when you are purging a single workgroup.
PURGEWG The PURGEWG command handles user prompting through three options, CONFIRM, CONFIRMALL, and NOCONFIRM. The CONFIRM option requests veri cation of the PURGEWG command as a whole. That is, CONFIRM only asks for veri cation of the workgrp parameter. The CONFIRMALL option provides user prompting for each workgroup. The NOCONFIRM option overrides all veri cation. Since the job environment does not support user prompting, the CONFIRM and CONFIRMALL options are ignored.
PURGEWG When PURGEWG is discontinued before it reaches the end of the list, the di erence between HPNUMSELECTED and HPNUMSUCCEEDED + HPNUMFAILED indicates the number of workgroups that were selected but not purged. When a workgroup is purged, the Workload Manager needs to rescan the a ected member processes. The cost of such a rescan depends upon the number of processes and workgroups involved. There are situations in which you may want to defer the rescan.
PURGEWG EXAMPLE d To purge all user-de ned workgroups, you can enter the commands as shown in either of the two samples below: :PURGEWG @; noconfirm 2 workgroups matched 2 workgroups selected. : a 2 workgroups succeeded. 0 workgroups failed. :PURGEWG @; noconfirm; show c 2 workgroups matched User_WG1 User_WG2 2 workgroups selected. : 2 workgroups succeeded. 0 workgroups failed.
PURGEWG d c To purge the User WG1 and User WG2 workgroups and request con rmation, enter: a :PURGEWG User_WG#; confirmall 2 workgroups matched User_WG1 ? (N/Y) Y User_WG2 ? (N/Y) Y 2 workgroups selected. 2 workgroups succeeded. 0 workgroups failed.
SHOWPROC Displays information about the speci ed process(es). (Native Mode) SHOWPROC SYNTAX SHOWPROC 2 2 ;JOB= ;TREE ;NOTREE 3 pinspec 2 (pinspec ,pinspec SUMMARY DETAIL 3 ... ) 93 ;TRUNC ;NOTRUNC pinspec PIN= 3 jobspec 2 3 (jobspec ,jobspec . . . ) ;USER ;ANYUSER ;SYSTEM PARAMETERS ;FORMAT= 28 3 2 The process that you want to see. The pinspec , expressed [#p ]pin, is a Process Identi cation Number (PIN).
SHOWPROC The jobnumber must be in the form #Jnnn or #Snnn . SM or OP capability is required to specify another user's job or session number. The username must be in the form user [.account ]. SM or OP capability is required to specify another user's username. If there is more than one job or session under the same username, all are displayed.
SHOWPROC DETAIL TREE NOTREE SYSTEM USER ANYUSER TRUNC NOTRUNC OPERATION This format displays a more comprehensive set of the attributes associated with a process. This option displays each process speci ed, as well as all of its descendents. TREE is the default for all jobspec target processes. This option displays only the process speci ed. No information appears for the process's descendants. NOTREE is the default for all pinspec target processes.
SHOWPROC If rule 1 or 2 applies or the user has SM capability then all information (except lockwords) is visible. Otherwise, only the Command Interperter (CI) command and/or program names are shown. That is, the parameters of a CI command and the INFO= string passed to a program are not visible. When SHOWPROC is executed in a job, regardless of capabilities and process ownership, only the CI command name and program are displayed.
SHOWPROC PROGRAM (v): QUEUE (v): QPRI (5): STATE (5): STEP (v): WORKGROUP (v): The le name of the program the process is executing. The scheduling queue attribute associated with this process. The QUEUE eld is unique to the DETAIL format. A combination of SUBQUEUE and PRIORITY which appears as Qnnn[*]. Q is a single character abbreviation of the process' scheduling queue attribute. The nnn is the process' priority, and * indicates that this process is a system process.
SHOWPROC d a :SHOWPROC pin=(2,99,121,188);format=detail;system PIN PARENT ----- -----2 1 LOGON PROGRAM QUEUE WORKGROUP PRI ----142 L : : : : CPUTIME STATE -------- ----7:23.687 WAIT JOBNUM ------ (PROGRAM) STEP -------------(LOAD.PUB.SYS) LOAD.PUB.SYS BS BS_Default *********************** PIN PARENT ----- -----99 68 LOGON PROGRAM QUEUE WORKGROUP PRI CPUTIME STATE JOBNUM ------------ ---------160 L 0:05.020 BLKIO S45 : : : : (PROGRAM) STEP -------------(QEDIT.PUB.SYS) NMTEST,SLC.MYTEST QEDIT.PUB.
SHOWPROC d Below is a sample output of the default SUMMARY format. :SHOWPROC #P54; tree; trunc QPRI CPU STATE JOBNUM PIN C152 0:12.999 C152 0:02.000 C152 0:01.030 WAIT S12 WAIT S12 READY S12 54 38 a (PROGRAM) STEP :tdp "text myfile" (TDP.PUB.SYS) text myfile 67 (FCOPY.PUB.SYS)from=foo.pub.sys;to=b$ :SHOWPROC #P54; tree; notrunc c QPRI CPU STATE JOBNUM PIN C152 0:12.999 C152 0:02.000 C152 0:01.030 r;new WAIT S12 WAIT S12 READY S12 54 38 EXAMPLE (PROGRAM) STEP :tdp "text myfile" (TDP.PUB.
SHOWPROC To display a summary of information for all non-system processes logged on as MGR.PAYROLL (requires SM or OP capability), enter: :SHOWPROC job=mgr.payroll To display a summary of information for all non-system processes belonging to Job 2 or logged on as ME.AP (requires SM or OP capability), enter: :SHOWPROC job=(#j2,me.
SHOWQ Displays scheduling data for all processes and the scheduling characteristics of the CS, DS and ES scheduling subqueue(s). (Native Mode) SHOWQ SYNTAX PARAMETERS SHOWQ [;ACTIVE][;STATUS] ACTIVE STATUS OPERATION Displays only the processes currently running or those about to run. This is the right-hand portion of the display. The STATUS lines are printed last. Reduces the output from SHOWQ to the nal status lines of display (base and limit priorities, quantum bounds).
SHOWQ Each entry in the three columns displays the following information for a single process; the meaning is explained below.
SHOWQ The MPE/iX Scheduler now supports the workgroup concept. However, backward compatibility is maintained through ve default workgroups created by the system. The scheduling characteristics of the CS Default, DS Default, and ES Default workgroups mimic those of the CS, DS, and ES scheduling subqueues. In fact, the information displayed for the CS, DS, and ES scheduling subqueues is the same information as that for the default workgroups.
SHOWWG Displays scheduling and process data pertaining to the speci ed workgroup(s). (Native Mode) SHOWWG SYNTAX SHOWWG 2 WORKGROUP= 3 workgrp 2 3 (workgrp ,workgrp . . . ) 8 93 SUMMARY > > > > 62 3< WGFILE = 7 7 6 ;FORMAT= 5 4 PROCS > > > > : ; 2 DETAIL PARAMETERS ;TRUNC ;NOTRUNC workgrp The name of the workgroup(s) for which information is to be displayed. Wildcards are supported. \@" matches to all workgroups, both user-de ned and system-de ned.
SHOWWG TRUNC NOTRUNC Truncates lines that would exceed $STDLIST for the user. A $ appears as the last character of the line to signify truncation. TRUNC is the default option for the SUMMARY, PROCS, and DETAIL formats. This option is ignored with the WGFILE format. Allows names to appear in their full form. As a result, output from the command will wrap around the display. This option is ignored with the WGFILE format. For the SUMMARY format, NOTRUNC applies to the line length.
SHOWWG Note Processes within the workgroup need not have their priorities fall within the speci ed base and limit values. N/A refers to the fact that the scheduling characteristic is Not Applicable for the system-de ned workgroup. For example, processes within the AS Default or BS Default workgroup (usually system processes) do not experience decay. Therefore these workgroups do not support the concept of a quantum or boost priority.
SHOWWG CPU MIN (3): The minimum CPU percentage currently established for the workgroup. The maximum CPU percentage currently established for the workgroup. CPU MAX (3): The WGFILE format displays the membership criteria and scheduling characteristics for the speci ed workgroup(s). The output generated is suitable as input to NEWWG and is therefore never truncated. Below is an example of the WGFILE format.
SHOWWG Workgroup ;Memb_Program ;Memb_Queue ;Base ;Limit ;MinQuant ;MaxQuant ;Boost ;Timeslice ;Mincpupct ;Maxcpupct = = = = = = = = = = = Payroll_Online PAYROLL.@.PRAPP CS 152 200 1000 1000 OSCILLATE 300 30 40 ************************* Workgroup ;Memb_Program ;Memb_Queue ;Base ;Limit ;MinQuant ;MaxQuant ;Boost ;Timeslice ;Mincpupct ;Maxcpupct = = = = = = = = = = = Payroll_Batch PAYROLL.@.
SHOWWG COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT The following are system-defined (default) workgroups.
SHOWWG COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT Workgroup ;Memb_Queue ;Base ;Limit ;MinQuant ;MaxQuant ;Boost ;Timeslice ;Mincpupct ;Maxcpupct = = = = = = = = = = DS_Default DS 202 238 2000 2000 DECAY 2000 N/A N/A ************************** COMMENT COMMENT Workgroup = ES_Default COMMENT ;Memb_Queue = ES COMMENT ;Base = 240 COMMENT ;Limit = 253 COMMENT ;MinQuant = 2000 COMMENT ;MaxQuant = 2000 COMMENT ;Boost = DECAY COMMENT ;Timeslice = 2000 COMMENT ;Mincpu
SHOWWG The PROCS format displays the member processes and certain process attributes. d a :SHOWWG Test_@; format= procs WORKGROUP PROCESSES : Test_WG1 : 3 PIN PARENT PRI ----- ------ ----101 54 180 D %124 38 185 D 189 67 183 D ;to=b$ ******************* STATE ----WAIT WAIT READY JOBNUM -----S41 J12 S57 (PROGRAM) STEP -------------:tdp "text myfile" (TDP.PUB.SYS) text myfile (FCOPY.PUB.SYS)from=foo.pub.sys PIN PARENT PRI CPUTIME STATE ----- ------ ----- -------- ----173 32 240 D 0:08.
SHOWWG PIN (6): PARENT (5): PRI (5): CPUTIME (8): STATE (5): JOBNUM (6): PROGRAM (v): STEP (v): Process Identi cation Number for the process. The format is [%]nnnnn, where the % (percent sign) indicates that the process is an arti cial member of the workgroup. Processes are either natural or arti cial members of a workgroup. Natural members meet the membership criteria, while arti cial members have been placed explicitly into the workgroup (via ALTPROC or an AIF call).
SHOWWG The DETAIL format displays the attributes associated with the speci ed workgroup(s). Below is a sample output created using the NOTRUNC option: d a :SHOWWG Test_@; format= detail;notrunc WORKGROUP PROCESSES : Test_WG1 : 3 MEMBERSHIP CRITERIA PROGRAM : @.@.
SHOWWG Note EXAMPLE Regardless of format, SHOWWG lists workgroups as they appear in the ordered list, which is identical to the search order used to determine workgroup membership. SHOWWG gets this order and all other displayed values from system tables and not from les, thus showing the actual state of the system.
TUNE Changes scheduling characteristics of the scheduling subqueues. These characteristics include base and limit priorities, quantum bounds (min and max), boost property and timeslice. (Native Mode) TUNE Syntax 2 TUNE minclockcycle 9 8 ;CQ=qinfo =2 3< ... ;DQ=qinfo ; : ;EQ=qinfo 3 Where qinfo is written in the following form: Note PARAMETERS base , limit 3 2 , min 3 2 , max 3 3 2 ,DECAY , tslice ,OSCILLATE minclockcycle This parameter is ignored.
TUNE DECAY OSCILLATE tslice OPERATION Sets the subqueue to the default decay behavior associated with circular scheduling subqueues. If set, a process decays normally to the limit priority and returns to the base priority when the Dispatcher transaction is complete. DECAY is the default boost property. Sets the subqueue to oscillate behavior. If set, a process returns to the base priority once its priority has decayed to the limit of the subqueue, even if it has not completed a Dispatcher transaction.
TUNE The timeslice value determines how long a process in a given scheduling subqueue will be allowed to hold the CPU. This value is di erent than the quantum, which determines how rapidly process priorities decay. The timeslice does interrupt the process if the process is interruptable. The timeslice is a multiple of 100 milliseconds and has a minimum value of 100 milliseconds.
TUNE EXAMPLE To set the CS subqueue's base to 152, limit to 200, and max quantum ( lter) to 300; and the DS subqueue's base to 202, limit to 238, min and max quantum ( lter) to 1000, and cause oscillation boosting, enter: TUNE CQ=152,200,300,300;DQ=202,238,1000,1000,OSCILLATE To set the CS subqueue to oscillation with a 300 millisecond timeslice and the DS subqueue's base to 180, limit to 238, boost property to decay, and timeslice to 1500, enter: TUNE CQ=,,,,OSCILLATE,300;DQ=180,238,,,DECAY,1500 Related
A Troubleshooting The Workload Manager is a powerful tool that can greatly impact system performance. Though it can be used to address performance issues, it can also be inadvertently misused, causing serious performance problems. This appendix includes information to help you troubleshoot problems that you may encounter using the Workload Manager.
Troubleshooting Workgroup Problems Uncaptured process Each of the following sections lists a potential problem and a list of possible solutions. Problem: You have created user-de ned workgroups but a process does not fall into the expected workgroup. Solutions: system process The process might be a system process, which cannot be captured by user-de ned workgroups. System processes are always members of one of the system-de ned default workgroups.
membership criteria near the end. The workgroup with the most general membership criteria are the ve system-de ned workgroups, which always appear last. To see the current order, which is the order workgroups appear in the workgroup con guration le, issue the SHOWWG command . (You can control this order by introducing a new workgroup con guration, or by specifying the POSITION parameter on the NEWWG command line when you create a new workgroup.
maximum too The workgroup may also be starving because it has been assigned a maximum amount of CPU that is low insu cient. For example, the workgroup may be assigned a maximum CPU value of 20% and be using that 20%, but requires 30% for adequate response time. Alternatively, other workgroups that should be constrained by their maximums might have those values set too high.
adjust quantum bounds CPU minimum not met If the process is at lower priority than other processes in the workgroup, but hasn't decayed to the limit priority (so that oscillation will take place), the rate of priority decay can be changed. Use the ALTWG command to change the quantum bounds to reduce the quantum. A smaller quantum ensures faster priority decay so that processes decay to the limit more quickly and can be oscillated.
if you can't enter commands A-6 Troubleshooting Reboot the system and at the ISL prompt, enter the command START SINGLE-USER. This initiates single-user mode, in which only the ve default workgroups are available; all user-de ned workgroups are purged. Next, use the NEWWG command to invoke a more appropriate workgroup con guration (or you can choose to stay with just the ve default workgroups). Finally, enter the command START or START MULTI-USER to bring the system up multi-user.
B Error Messages This appendix describes error messages returned by the Command Interpreter (CI) that relate to workgroups and using the Workload Manager. For each message, you will see the cause or probable cause and one or more suggestions to remedy the error.
11506 12201 12202 12203 MESSAGE SHOWPROC format must be SUMMARY or DETAIL. (CIWARN 11506) CAUSE You entered a format name other than the two supported by the SHOWPROC command, SUMMARY or DETAIL. Or, you misspelled one of the two format names. ACTION Reenter the command and specify either SUMMARY or DETAIL as the format name. MESSAGE Workgroup name already exists. (CIERR 12201) CAUSE The name that you speci ed for the new workgroup already exists.
12205 12206 CIERR 12207 CIERR 12208 CIERR 12209 MESSAGE MINQUANT and MAXQUANT values must be between 1 and 32767, inclusive. (CIERR 12205) CAUSE The value that you speci ed for the minimum quantum or the maximum quantum is not within the allowable limits of 1 and 32767, inclusive. ACTION Reenter the command, specifying a value between 1 and 32767 inclusive. Remember that the minimum quantum value must be less than or equal to the maximum quantum. MESSAGE MINQUANT value cannot exceed MAXQUANT.
CIERR 12210 CIERR 12211 12212 12213 12214 B-4 MESSAGE MINCPUPCT value must be within 0 and 99, inclusive. 12210) CAUSE The value that you speci ed for minimum CPU percentage is either less than zero, or it is greater than 99. ACTION Reenter the command to specify a valid percentage value. Make sure that mincpupct does not exceed maxcpupct , and that the sum of all minimum CPU percentages is less than 100. MESSAGE MINCPUPCT value cannot exceed MAXCPUPCT.
12215 12217 12218 12219 12220 MESSAGE NOTRUNC option is ignored for WGFILE format. (CIWARN 12215) CAUSE You attempted to display workgroup information in the WGFILE (1) format and speci ed the NOTRUNC option. ACTION Reenter the command to omit the NOTRUNC option. Or, choose either the PROCS or DETAIL format to display workgroup information without truncation and specify the NOTRUNC option. MESSAGE VALIDATE option is ignored when not specified in conjunction with an indirect file name.
12221 12222 12223 12224 12225 B-6 MESSAGE VALIDATE option is not allowed within an indirect file. (CIERR 12221) CAUSE One or more of the workgroup speci cations in the indirect le that you supplied to the NEWWG command contain the VALIDATE option. ACTION Edit the indirect le to remove all of the VALIDATE option entries from the workgroup speci cations. Then, reenter the NEWWG command. MESSAGE The indirect file may not contain references to itself or to another indirect file.
CIERR 12226 MESSAGE PRI and WG parameters may not be specified together. 12226) CAUSE You speci ed both PRI and WG parameters, and the ALTPROC command can accept only one of them. ACTION Choose which parameter you want to use and reenter the command to specify only that one. Use the WG parameter to explicitly place a process in a workgroup (where it becomes an arti cial member ) or to return a process to its natural workgroup. Use the PRI parameter to alter the priority of a process.
12230 12231 12235 12236 B-8 MESSAGE This name is reserved for a system-defined workgroup. 12230) CAUSE You attempted to create a user-de ned workgroup using one of the system-de ned workgroup names. ACTION Reenter the command to specify a workgroup name that does not match one of the system-de ned workgroups: AS Default, BS Default, CS Default, DS Default, and ES Default or the reserved workgroup name Natural wg.
12237 12238 MESSAGE Cannot rewind the indirect file for reading. (CIERR 12237) CAUSE An access error occured during repositioning of the record pointer to the beginning of the indirect le. ACTION Examine the le to ensure that it is not corrupt, then reenter the command. MESSAGE You must purchase the Workload Manager (product # B3879AA) before you can create any user-defined workgroups. (CIERR 12238) CAUSE You tried to create a user-de ned workgroup without purchasing the Workload Manager.
12240 12241 B-10 MESSAGE Cannot change the default workgroup of a system process. 12240) CAUSE You attempted to change the workgroup of a system process, which is not allowed. ACTION Use the SHOWPROC command to make sure that the process whose workgroup you are changing is a user process. If it is, verify that the PIN number that you supplied is correct and then reenter the command. MESSAGE Cannot modify the CPU percentages of the system-defined workgroups.
Glossary arti cial member A process that has been explicitly placed in a workgroup via the :ALTPROC command or AIFPROCPUT, instead of naturally meeting the membership criteria of the workgroup. circular scheduling subqueues A name for the CS, DS, and ES scheduling subqueues on systems running version 4.7 or earlier of MPE/iX. These subqueues are considered circular because the priority of processes decays over time, circulating within the bounds of the established base and limit values for the subqueue.
system-de ned workgroups The ve default workgroups present on all systems running Release 5.0 of MPE/iX: AS Default, BS Default, CS Default, DS Default, and ES Default. Each system-de ned workgroup corresponds to a traditional scheduling subqueue. The AS Default workgroup, for example, corresponds to the AS subqueue. system-wide scan A review of all system and user processes to determine their appropriate workgroup membership.
Index A B C adding a workgroup, 3-2 adjusting response time, 4-3 AIF calls, 1-2 ALTACCT command, 1-3 altering a workgroup, 3-10 altering system processes, 5-5 ALTPROC command, 1-3, 1-6, 5-2 examples, 5-6 ALTWG command, 1-7, 3-10, 4-3, 4-4, 5-7 examples, 5-11 application class, 2-9 mapping one workgroup to many classes, 2-10 mapping to many workgroups, 2-9 mapping to one workgroup, 2-9 arti cial workgroup member, 5-4 assigning processes to workgroups, 1-5, 2-3, 3-9 AS subqueue, 1-3 atomic action, 3-9 back
RUN, 1-3 SHOWPROC, 1-7, 5-28 SHOWQ, 1-7, 5-36 SHOWWG, 1-7, 3-4, 3-10, 5-39 STREAM, 3-9 TUNE, 1-6, 1-7, 5-10, 5-50 compatability workgroups and scheduling subqueues, 1-4 conditionally replacing the current con guration, 3-10 con guration creating an indirect le, 5-39 editing the indirect le, 3-6 validating the indirect le, 3-8 con guring workgroups, 3-5 consolidating systems, 4-6 controlling one workgroup, 4-5 controlling other workgroups, 4-6 CPU access, 4-5 changing, 4-3 modifying for one process, 4-4 CPU
minimum quantum, 2-7 priority decay, 2-6 dynamic quantum calculation, 2-7 E G H editing the indirect le, 3-6 error CPU bounds violations, 3-10 errors in the indirect le, 3-8 ES Default workgroup maximum quantum, 2-7 priority decay, 2-6 evaluating system use, 2-2 evaluating workload with GlancePlus, 2-9 example altering a process, 5-6 altering a workgroup, 3-10, 5-11 creating a new workgroup, 5-20 creating an indirect le, 5-49 displaying active workgroups, 5-49 displaying member processes, 5-49 displaying
I J K L M N Index-4 identifying a process, 4-4 improving CPU access, 4-3 indirect le, 3-5, 5-12, 5-17 COMMENT keyword, 3-8, 5-18 creating, 5-19, 5-39, 5-49 editing, 3-6 HFS syntax, 3-5 invoking, 3-9 MPE/iX syntax, 3-5 order of workgroups in, 2-3 saving, 3-5 using, 4-2 validating, 3-8, 4-2, 5-13 in nite loops, 4-4 I/O redirection, 3-5, 5-19 JOB command, 1-3 job le, 3-9, 3-10 keeping the current workgroup con guration, 3-5, 5-18 limit priority, 2-5, 2-6, 5-15 altering, 5-7 raising, 4-3 logon identity,
O P Q ordering of workgroups, 2-3, 4-4, 5-16 oscillate behavior, 5-15 overlapping priority ranges, 2-5 partitioning the system workload, 1-2, 2-2, 4-6 performance expectations, 4-7 placing a workgroup in the ordered list, 4-4, 5-16 POSITION parameter example of, 4-4 predicting system behavior, 4-2 preempting a process, 2-6 priority base, 2-5, 2-6 changing one process, 4-4 decay, 2-5 limit, 2-5, 2-6 preemption, 2-6 priority decay, 5-15 process changing CPU access of, 4-4 determining workgroup membership,
R S Index-6 replacing the workgroup con guration, 3-5, 5-12 immediate replacement, 3-9 scheduled replacement, 3-9 required scheduling characteristics, 2-5 responding to workload changes, 4-2 response time adjusting, 4-3 consistency in, 4-5 elements of, 4-5 RUN command, 1-3 saving the indirect le, 3-5 Scheduler, 2-6, 5-9, 5-19 scheduling characteristics, 1-6 base priority, 2-6, 5-15 boost property, 2-7, 5-15 changing, 3-10, 5-10 CPU percentages, 2-8 limit priority, 2-6, 5-15 overview of, 2-6 quantum bound
system use evaluating, 2-2 system-wide scan, 3-9, 5-10, 5-20 system workload partitioning, 1-2, 2-2 T U V W timeslice, 2-5, 2-8, 5-16 traditional scheduling subqueues comparison with workgroups, 1-4 troubleshooting CPU minimum unmet, A-5 process hang, A-5 starving processes, A-4 starving workgroups, A-3 system hang, A-5 uncaptured processes, A-2 TUNE command, 1-6, 1-7, 5-10, 5-50 examples, 5-53 tuning subqueues, 1-3 tuning system performance, 4-2 user-de ned workgroups, 1-2, 1-5 creating, 3-2 priority d
workgroups adding, 3-2 altering, 3-10 controlling, 4-5, 4-6 creating a high-priority, 4-4 creating a low-priority, 4-4 degrading CPU access of, 4-3 displaying, 3-4 general membership criteria, 2-4 increasing CPU access of, 4-3 list of, 3-3 membership example, 2-4 natural membership in, 3-3 NATURAL WG, 3-8 order of, 2-4 positioning, 3-3 purge-pending, 5-25 purging, 5-23 quantum, 2-7 replacing the current con guration, 3-5 scheduling characteristics, 2-5 speci c membership criteria, 2-4 system-de ned, 1-4 use