[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

System Management Concepts: Operating System and Devices


Overview of WLM Classes

The central concept of Workload Manager (WLM) is the concept of class. A class is a collection of processes (jobs) that has a single set of resource limits applied to it. WLM assigns processes to the various classes and controls the allocation of system resources among the different classes by using class-assignment rules. WLM controls the allocation of system resources among the different classes using per-class resource shares and limits set by the system administrator.

WLM allows system administrators to set up a hierarchy of classes by defining superclasses and then either defining subclasses for some or all of the superclasses themselves, or delegating the administration of the superclasses to superclass administrators who in turn will define the subclasses. The term class is used in reference to both superclasses and subclasses. Otherwise, the appropriate term is used.

The main difference between superclasses and subclasses is resource control (shares and limits). At the superclass level, the determination of resource entitlement based on the resource shares and limits is based on the total amount of each resource managed by WLM available on the machine. At the subclass level, the resource shares and limits are based on the amount of each resource allocated to the parent superclass.

A system administrator has the option to allocate a portion of the system resources to each superclass and then let superclass administrators distribute the allocated resources among the users and applications that they manage.

A process can be assigned to a class either automatically or manually. A process is assigned automatically when it starts using a set of class-assignment rules defined by a WLM administrator (the most common method). A process is assigned manually either by administrators or users with the appropriate level of privilege. Manual assignment overrides automatic assignment.

Class definitions, resource shares and limits, and class-assignment rules can be defined for both the superclass and subclass level by using SMIT and Web-based System Manager, the WLM command-line interface, or by applications using the WLM API. These definitions are kept in a set of text files called the WLM property files. The property files for a set of superclasses and subclasses constitute a WLM configuration.

The WLM administrator creates a name for each class. A class name is up to 16 characters in length and can contain only uppercase and lowercase letters, numbers and underscores ('_'). For a given WLM configuration, the names of all the superclasses must be different from one another, and the names of the subclasses of a given superclass must be different from one another. Subclasses of different superclasses can have the same name. To uniquely identify a subclass, the subclass full name composed of the superclass name and the subclass name separated by a dot must be used. The subclass Sub of superclass Super will thus be uniquely identified as Super.Sub.

Superclasses

The system administrator can define up to 27 superclasses. In addition, the following five superclasses are automatically created:

Default superclass
Is the default superclass and is always defined. All non-root processes that are not automatically assigned to a specific superclass are assigned to the Default superclass. Other processes can also be assigned to the Default superclass by providing specific assignment rules.

System superclass
Has all privileged (root) processes assigned to it if those processes are not assigned by rules to a specific class. This superclass also collects the memory pages belonging to kernel memory segments, kernel processes, and kernel threads. Other processes can also be assigned to the System superclass by providing specific assignment rules for this superclass. This superclass has a memory minimum limit of 1% as the default.

Shared superclass
Receives the memory pages that are shared by processes in more than one superclass. This includes pages in shared memory regions and pages in files that are used by processes in more than one superclass (or in subclasses of different superclasses). Shared memory and files that are used by multiple processes that all belong to a single superclass (or subclasses of the same superclass) are associated with that superclass. Only when a process from a different superclass accesses the shared memory region or file are the pages placed in the Shared superclass. This superclass can have only physical memory shares and limits applied to it. It cannot have shares or limits for the other resource types, subclasses, or assignment rules specified. Whether a memory segment shared by processes in different subclasses of the same superclass is classified into the Shared subclass or remains in its original subclass depends on the value of the localshm attribute of the original subclass.

Unclassified superclass
Is a memory allocation for unclassified processes. The processes in existence at the time that WLM is started are classified according to the assignment rules of the WLM configuration being loaded. During this initial classification, all the memory pages attached to each process are "charged" either to the superclass that the process belongs to (when not shared, or shared by processes in the same superclass), or to the Shared superclass when shared by processes in different superclasses.

However, a few pages cannot be directly tied to any processes (and thus to any class) at the time of this classification, and this memory is charged to the Unclassified superclass. Most of this memory is correctly reclassified over time, when it is either accessed by a process, or released and reallocated to a process after WLM is started. There are no processes in the Unclassified superclass. This superclass can have physical memory shares and limits applied to it. It cannot have shares or limits for the other resource types, subclasses, or assignment rules specified.

Unmanaged superclass
Is always defined. No processes will be assigned to this class. This class will be used to accumulate the CPU usage for all fixed priority processes and the memory usage for all pinned pages in the system. The CPU utilization for the wait processes is intentionally not accumulated in any class. Otherwise the system would always seem to be at 100% CPU utilization, which could be misleading for users when looking at the WLM statistics.

Subclasses

The system administrator or a superclass administrator can define up to 10 subclasses. In addition, two special subclasses, Default and Shared, are always defined.

Default subclass
Is the default subclass and is always defined. All processes that are not automatically assigned to a specific subclass of the superclass are assigned to the Default subclass. You can also assign other processes to the Default subclass by providing specific assignment rules.

Shared subclass
Receives all the memory pages that are used by processes in more than one subclass of the superclass. Included are pages in shared memory regions and pages in files that are used by processes in more than one subclass of the same superclass. Shared memory and files that are used by multiple processes that all belong to a single subclass are associated with that subclass. Only when a process from a different subclass of the same superclass accesses the shared memory region or file are the pages placed in the Shared subclass of the superclass. There are no processes in the Shared subclass. This subclass can have only physical memory shares and limits applied to it, and it cannot have shares or limits for the other resource types or assignment rules specified. Whether a memory segment shared by processes in different subclasses of the same superclass is classified into the Shared subclass or remains in its original subclass depends on the value of the localshm attribute of the original subclass.

Backward Compatibility

System administrators have the option of using either:

The system administrator can also choose to create subclasses for some superclasses and not for others. In this case, the superclasses with no user-defined subclasses do not need to have a subdirectory /etc/wlm/config/superclass_name and property files associated to the superclass.

When starting WLM with configurations created with versions earlier to AIX 5.1, only superclasses are used. The default output of the wlmstat command lists only the superclasses and is similar to those of previous versions. For example:

# wlmstat
               CLASS  CPU  MEM  DKIO
        Unclassified    0    0   0
           Unmanaged    0    0   0
             Default    0    0   0
              Shared    0    2   0
              System    2   12   0
              class1    0    0   0
              class2    0    0   0
#

If some of the superclasses have subclasses defined by a WLM administrator, then the subclasses are listed. For example:

# wlmstat
               CLASS  CPU  MEM  DKIO
        Unclassified    0    0   0
           Unmanaged    0    0   0
             Default    0    0   0
              Shared    0    2   0
              System    3   11   7
              class1   46    0   0
    class1.Default     28    0   0
     class1.Shared      0    0   0
        class1.sub1    18    0   0
              class2   48    0   0
#

The output is the same when you use the ps command. For processes in a superclass without any subclasses, the ps command lists the superclass name as the process class name.


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]