Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Workload Manager User's Guide: Version A.03.02.02 > Chapter 3 How WLM manages workloads

How WLM works

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

The following tasks outline how WLM works:

  1. Sets initial resource allocations.

    WLM sets resource allocations for your workloads based on metrics for the workloads. When you first start WLM however, there are no metrics for the workloads. So, WLM sets these initial allocations, in terms of shares, as follows:

    CPU shares: Each workload gets 1/n of the total CPU resources, where n is the number of workloads

    Memory shares: Each workload gets the default minimum memory allocation (although the group can use more if needed)

    Disk bandwidth shares: Are set as indicated in the configuration file (if they are specified at all)

    CPU shares are either relative or absolute. With relative shares, a workload’s number of shares relative to the total number of shares for all the workloads determines the group’s allocation. For example, if group A has 50 shares and the other groups in the configuration have 150 shares, group A has 50/200 or 25% of the CPU resources (cores). With absolute CPU shares, 100 shares represent one core. So, you only need to know how many shares a group has to determine its allocation. For example, assume group A has 50 shares again. This is an allocation of half of a core.

  2. Accepts or calculates performance data.

    For metric goals and shares-per-metric allocations, WLM accepts metrics from data collectors. For usage goals and fixed allocations, WLM calculates the metrics itself.

  3. Compares performance data (reported performance) to stated goals (desired performance) for each active goal-based SLO.

  4. Determines new CPU allocations so that reported performance converges on desired performance; also determines CPU allocations to satisfy requests for shares-per-metric allocations and fixed allocations.

  5. Arbitrates between workloads when CPU resources are insufficient to meet the needs of all workloads.

    When CPU resources are not sufficient, certain workloads necessarily will not be able to reach their desired performance levels. In these cases, WLM allocates resources to the associated workloads based on their SLOs’ assigned priorities—allowing the higher-priority SLOs to better meet their goals at the expense of the lower-priority SLOs not meeting their goals.

  6. Determines memory allocations based on whether any workloads have become active or gone inactive.

  7. Sends request to the WLM global arbiter to increase or decrease the number of cores in the current partition as appropriate.

    You can use WLM within and across:

    • Virtual partitions

    • nPartitions that use Instant Capacity software (formerly known as iCOD software)

  8. Assigns new CPU and memory shares.

  9. Writes to log files.

    If you enabled statistics logging with the wlmd -l option, at the end of each WLM interval, WLM adds data for the interval to the /var/opt/wlm/wlmdstats file.

    Also, the WLM global arbiter writes to its own statistics log file if you enabled logging with the wlmpard -l option. At the end of each global arbiter interval, the global arbiter adds data for the interval to the /var/opt/wlm/wlmpardstats file.

  10. Sets EMS resources for monitoring of SLO compliance.

  11. Repeats tasks 2 through 10 the next WLM interval.

  12. WLM adds messages, at any time, to its message log /var/opt/wlm/msglog. This log, which WLM automatically creates, informs you of the WLM daemon’s operations.

  13. WLM and the global arbiter daemon generate audit data files, if enabled (using the -t option to wlmd and wlmpard when you activated your WLM configuration and global arbiter configuration).

Figure 3-1 “WLM overview” illustrates how WLM works.

For more information on the components shown in the figure, see the following sections:

Figure 3-1 “WLM overview” provides an overview of WLM functional flow. It shows WLM running in each partition on the system. If you are using WLM on a system without partitions, focus on Par 0 to understand how WLM controls resources on your system to ensure SLOs are met. If you want to understand how WLM manages resources across partitions, consider Par 0 as one of four partitions along with Par 1, Par 2, and Par 3; the WLM global arbiter (defined in the partition for Par 0) determines resource allocations for each of the four partitions. Detailed descriptions of the functional processes illustrated in are provided after the figure.

Figure 3-1 WLM overview

WLM overview

Referring to Figure 3-1 “WLM overview”, the main WLM functional flow is as follows:

  1. The WLM configuration file specifies the goal-based or shares-based SLOs for each workload. This file also provides the pathnames for data collectors. WLM reads the configuration file and starts the data collectors.

  2. For each application with a usage goal, WLM creates a controller (an internal component of WLM). Each controller tracks its application’s actual CPU usage (utilization of allocated CPU resources); no user-supplied metrics are required. The controller requests an increase or decrease to the workload’s CPU allocation to better achieve the usage goal.

  3. For each application with a metric goal, as the application runs, a data collector for that application reports the application’s metrics. The measurement, for example, might be transaction response times for an online transaction processing (OLTP) application.

  4. For each metric goal, WLM creates a controller (an internal component of WLM). Each controller receives the metric from the respective data collector. The metric is compared to the goal for that metric to determine if the application is overperforming or underperforming. The controller then requests more CPU shares for a workload with underperforming applications or fewer CPU shares for a workload with overperforming applications.

  5. For applications without goals, WLM requests CPU resources based on the CPU allocation request values set in the SLO definitions. These requests could be for fixed allocations or for shares-per-metric allocations, with the metric coming from a data collector.

  6. The arbiter, an internal module of WLM, collects all the requests for CPU shares. These requests come from controllers or, if allocations are fixed, from the SLO definitions. The arbiter satisfies the requests based on priority. If resources are insufficient for every application to meet its goals, the arbiter satisfies the highest priority requests first. If multiple SLOs at the same priority cannot be satisfied, WLM raises the CPU allocation for each SLO’s associated workload to the same level or to the SLO’s CPU request—whichever is smaller.

  7. Optionally, with PRM resource management available for a single HP-UX instance, WLM determines how much memory to distribute to meet the minimum memory requests and then, if any memory remains, divides it among the groups with active SLOs.

  8. For managing resources within a single HP-UX instance, WLM then creates a new PRM configuration applying the new CPU shares and optional memory shares for the various workload groups.

  9. For managing CPU resources (cores) across partitions, the WLM instance on each partition regularly requests from the WLM global arbiter a certain number of cores for its partition.

    With WLM performing cross-partition management, this WLM process flow being described is duplicated in each partition. The WLM global arbiter takes the CPU resource requests from the WLM instance on each partition and then uses these requests to decide how to allocate cores to the partitions. Next, it adjusts a partition’s number of cores in an effort to better meet the SLOs in the partition.

    NOTE: For partitions, you can bypass creating workloads (workload groups), treating the partition itself as the workload. Par 2 and Par 3 show the scenario.

The monitoring and logging processes shown in Figure 3-1 “WLM overview” include the following:

  • The status of the SLOs and information about the performance of WLM are sent to the Event Monitoring Service (EMS). Using an EMS client such as System Administration Manager (SAM) or System Management Homepage (SMH), which is an enhanced version of SAM, a system administrator can choose from a number of notification methods (such as email, SNMP traps, TCP, UDP, and OPC Messaging) for receiving events of specific interest.

  • The WLM monitoring tools wlminfo and wlmgui allow you to get a variety of types of WLM information.

  • WLM keeps you up to date on the operations of its daemon by updating the message log /var/opt/wlm/msglog.

  • WLM adds data to the statistics log /var/opt/wlm/wlmdstats if enabled through the wlmd -l option. The data collectors continue to feed application metrics to WLM, which at intervals calculates new resource allocations and performs any needed PRM reconfiguration.

  • With the WLM configuration file activated using the -t option to wlmd, WLM produces audit data in the /var/opt/wlm/audit/ file.

  • With the WLM global arbiter configuration file activated using the -l option to wlmpard, the global arbiter adds data to the /var/opt/wlm/wlmpardstats/ statistics log file.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2000-2007 Hewlett-Packard Development Company, L.P.