The LPAR Level
The CPU environment and the LPAR environment go together for providing CPU processing to applications. Having dedicated engines is very straight forward for tracking performance, but most businesses aren't that lucky. In todays systems with multiple LPARs, it is normally a business decision to allocate resources to specific workloads on specific LPARs that share engines. There are multiple layers of resource allocation and all layers will require analysis and understanding. First is allocating resources (how the box was configured originally), then how to measure what has been configured (does the current configuration work). Real work time is all that matters.
Note - if cores are dedicated (not shared), the LPAR gets 100% and no weighting, etc is done. It can get tricky to measure performance with SMT and dedicated engines.
- LPAR Weight/Entitlement -
- Allocating CPU resource to LPAR (explained in detail in LPAR weights/overhead analysis)
- Physical overhead (ESALPMGS - Mgmt) - if there are too many vcpus assigned, this number will go up and problems may follow.
- LPAR overhead (ESALPMGS - Ovhd)
- LPAR assigned time (ESALPMGS - Assign) - the actual processing time the guest sees (real work time).
- LPAR entitlement (ESALPARS - Entitld CPU Cnt) - Shows how much processing power an LPAR has
(which is not as important if the system is running below 80% but is definitely important if running over 80%) - z/VM SHARE - (LPAR Assigned time - virtual)
- Allocating z/VM resources to virtual machine - See Setting SHARE values for Virtual Machines
- z/VM System Control Program time (ESACPUU - Overhd Syst) - time used for the z/VM system functions.
- User overhead time (ESACPUU - Overhd User) - time used for system functions attributed to users.
- Emulation time (ESACPUU - Emul time) - the actual processing time the guest sees (real work time).
- Linux - (Emulation - z/VM guest time)
- Allocating Linux resource to processes - See Configuring Linux - Best Practices
- Linux system time/kernel time (ESALNXS - Krnl) - time used for system processing or system overhead.
- IRQ - Interrupt Request time (ESALNXS - IRQ) - time used for software interrupts or user overhead.
- User time (ESALNXS - User) - the actual processing time the user sees (real work time).
Very Important - When defining LPARs, it is very important to define your virtual CPUs on the same book and/or the same chip. This helps immensely with performance since it better utilizes the cache. More work is done per cycle as less cycles are wasted getting data from other levels of cache
Parking/Unparking effects on LPAR usage: Each engine based on LPAR weights is provided a polarization of high, medium
or low. The system hypervisor will park LPAR engines - meaning it will not dispatch those engines to the LPAR based
on the requirements of the LPAR and total system utilization. In an SMT environment, both threads on an engine get
parked, z/VM is alerted and will not dispatch on those engines. High levels of parking on smaller systems have
shown to be problematic. Performance will then improves when the hypervisor is not allowed to park engines.
See CPU/LPAR Parking for more information on CPU parking and how it affects the system.
Helpful ESAMON screens/ESAMAP reports:
- ESALPAR - Logical Partition Analysis - shows logical partition characteristics and utilization for each LPAR and the system as a whole
- ESALPARS - Logical Partition Summary - shows logical partition configuration and utilization for each LPAR
- ESALPMGS - Physical CPU Utilization by type - shows the CPU percentage busy by each CPU type (CP/IFL/ZIIP)
Using zVPS to find information for solving issues with the LPAR level:
Knowing the capacity on the box in terms of CPUs and the requirements of the other LPARs then leads to the business decision of how to allocate the CPU resources.
ESALPAR - Shows information for each LPAR running on the box:
ESALPARS - Shows the processor sharing configuration and utilization for each LPAR
ESALPMGS - Shows how the hardware/processing resources are distributed in the box.
Conclusions
There are a lot of metrics which require a need to understand how each LPAR uses CPU and how a specific workload can be guranteed their required CPU. Understanding LPAR entitlement is critical to understanding CPU resources available to each LPAR. Entitlement is the amount of real CPU time each partition is guaranteed. Entitlement for an LPAR with shared CPUs is a function of the LPAR's weight, the sum of the weights for all other shared partitions and the number of shared physical CPUs in the CPC. It is calculated for each CPU type as the number of shared CPUs multiplied by the ratio of an LPAR's weight to the sum of the weights of all shared partitions. From a business planning perspective, this becomes a critical metric for providing specific workloads with the required processing power. All of these needs to be understood when the box is configured. Many of these calculations can only be changed by updating the hardware in the box via the Hardware Management Console (HMC).
Back to top of page
Back to Performance Tuning Guide