LPAR Parking

CPU/LPAR Parking:


CPU Definition:

Before beginning, some clarification on CPU naming:


Introduction to Parking:

First, in z/VM 6.3 there were Hypervisor changes that introduced polarization modes. The difference between horizontal and vertical polarization:

Second, introduced in the PTF for APAR VM66063 was the 'parking' of logical CPUs when the system has calculated there will be excess CPU power available. This allowed z/VM to determine the best number of CPUs for consuming the available power. Later support was provided to make changes to the defaults of when to 'park'. Parking decisions are made every two seconds. The amount of High, Medium and Low assignments are done by a system algorithm based on the number of engines and their weights, but the unparking level can be done by command.

Third, a few more specifics - understanding LPAR/CPU polarization and parking/unparking designations:

Helpful Screens:

ESAOPER - Shows in the operator log when a CPU has been parked and unparked. It will always show even numbers.

?

ESAHDR - Shows a summary of the system configuration. Shows the settings/information for parking.

?

  • Unparking set to Large - This shows the System Resource Manager (SRM) setting for the unparking of CPUs on an LPAR. (Large is the default in z/VM 7.1, changes to Medium in z/VM 7.2.)
  • Excess use - This is the SRM setting for how aggressively the system should attempt to use unentitled CPU capacity. (Medium is the default.)
  • Ceiling prediction CPU utilization - Confidence - This is the confidence percentage used to make ceiling predictions of CPU/core utilization used in unparking decisions.
  • Ceiling prediction CPU utilization - Algorithm - This is one of the following: 1=standard (normal) 2=standard adjusted 3=standard reverse 4=average.
  • Max parked CPUs - This is the maximum number of CPUs that can be parked in an interval.
  • CPU Fudge Factor - This is amount of CPU capacity added to the ceiling prediction. The SRM setting is CPUPAD which can be adjusted to help determine when to park/unpark a CPU.

  • Back to top of page


    Processor Cache:

    There are different levels of memory cache. Each CPU has L1 and L2 cache that is private to the CPU. L3/L4 cache is shared by the CPUs at different levels of the machine. L1 cache must be populated with instructions and associated data in order to be used. Performance is obviously better when all needed information is in L1 cache and processing can stay in local cache. If other non-local cache is needed because the necessary data is unavailable in L1 cache, it can cause delays in processing. When a core is unparked, its L1 cache must be refreshed before it can be used. This will also cause delays in processing.
    ESAMFC screen/report below shows the affects of unparking on cycles per instruction (CPI). CPI is a measure of cache effectiveness. Watching this report will show impacts of parking/unparking over time and trends can be determined. Since Linux tends to do consistent periodic polling, it creates a significant amount of cache use that is not needed after the polling completes. This causes Linux workloads to not necessarily do well with vertical polarization.

    Helpful Screen:

    ESAMFC - The screen/report shows the processor cache analysis for each minute (screen) and in 15 minute increments and a Summary for the day (report). This report will show if the cache is being used effectively. Note: You must have Measurement Facility turned on in the LPAR to collect the correct records for this screen/report - See Enabling CPUMFC Records

    ?

  • Processor Rate/Sec Cycles - This shows the CPU cycles used
  • Processor Rate/Sec Instr - This shows the rate of instructions executed by the CPU
  • Processor Rate/Sec Ratio - This shows the average number of cycles required to process an instruction. These are the numbers that are important. If the instruction rate goes up, there is more capacity and more work being done. If the workload changes and utilization goes up but instruction count goes down, that is not good. If the ratio number goes down, the cache is being used more effectively.
  • Level 1 Cache/Second Instruction Cost/Data Cost - Shows the cost of cache misses.
  • TLB CPU Cost/Cycles Lost - Also shows the cost of cache misses - cycles being used for 'non-work' (such as address translation) or 'idle' due to time lost moving data from a higher level of cache/memory. Watch for changes changes in each of these numbers - especially if changing parking settings and/or LPAR weighting.

  • Back to top of page


    Parking Summary/Benefits:

    For parking/unparking, each engine - based on LPAR weights (done dynamically - not assigned) - is provided a polarization of high, medium or low. The system hypervisor will park LPAR engines, meaning will not dispatch those engines to the LPAR based on requirements of the LPAR and total system utiilzation. In an SMT environment, both threads on that engine are parked, z/VM is alerted and z/VM will no longer dispatch on those engines. High levels of parking on smaller systems have been shown to be problematic with performance improving when the hypervisor is not allowed to park engines. SRM settings and LPAR weightings can be used to adjust the parking/unparking of engines. For z/VM 7.2, the UNPARKING default changed from LARGE to MEDIUM to reduce the tendency to use vertical-low logical cores and thereby potentially reduce the PR/SM hypervisor overhead and improve the use of processor cache.
    When this all can be done correctly, the following benefits can be expected:

    Helpful Screen:

    ESACPUU - screen/report shows the CPU utilization and how often processors were parked in 15 minute increments and a summary for the day.

    ?

  • Vertical Entitlement - Shows the CPU entitlement. See LPAR weights/overhead for more information about CPU entitlement
  • Park Seconds - Shows how many seconds the CPU was parked. If the amount of parking seconds is high, it would be beneficial to check the entitlement and number of virtual CPUs assigned to verify the system is set up efficiently.

  • Back to top of page


    Things to keep in mind:

    Back to top of page


    Helpful system commands:

  • CP SET SRM: Used for System Resource Management manipulation (only relevant options are shown here).
  •                         +-TYPE--ALL------+
    >>--Set--SRM--+-CPUPAD--+----------------+--qqqqq%--------------+-----------><
                  |         +-TYPE--+-ALL--+-+                      |
                  |                 +-CP---+                        |
                  |                 +-ZIIP-+                        |
                  |                 +-ZAAP-+                        |
                  |                 +-IFL--+                        |
                  |                 +-ICF--+                        |
                  +-DSPWDMethod--+-REShuffle-+----------------------+
                  |              +-REBalance-+                      |
                  |            +-TYPE--ALL------+                   |
                  +-EXCESSuse--+----------------+--+-High---+-------+
                  |            +-TYPE--+-ALL--+-+  +-Medium-+       |
                  |                    +-CP---+    +-Low----+       |
                  |                    +-ZIIP-+    +-None---+       |
                  |                    +-ZAAP-+                     |
                  |                    +-IFL--+                     |
                  |                    +-ICF--+                     |
                  +-POLARization--+-VERTical---+--------------------+
                  |               +-HORIZontal-+                    |
                  +-UNPARKing--+-Large--+---------------------------+
                               +-Medium-+
                               +-Small--+
    

  • CPUPAD Use to set the amount of additional CPU capacity the system should be prepared to consume beyond what the system projects it will need. qqqq is a value from 0 through 08000. A value of 100 is the default setting - when SMT is enabled, this value represents an entire core.
  • DSPWDMethod The two methods of the dispatcher work distribution algorithm are REShuffle or REBalance. REShuffle is the default and should be used. With SMT is enabled, it is the only supported algorithm.
  • EXCESSuse This specifies how aggressively the system should attempt to use unentitiled CPU capacity. It affects how aggressively vertical-low CPUs are used to consume unentitled CPU capacity. The options are TYPE (CPU type), High (aggressive), Medium (moderately aggressive) and Low (not aggressive). The default is Medium.
  • POLARization This sets polarization to VERTical or HORIZontal. In vertical mode, the partition's logical CPUs have differing entitlements to physical CPU resources. It tends to improve system performance. When running SMT, it is only supported in vertical mode.
  • UNPARKing Specifies what process is used when GPD is available - Large, Medium or Small. Large unparks all of the logical cores that are powered, including vertical-low cores. Medium unparks all of the vertical-high and vertical medium cores and either 1) all of the vertical-low that z/VM predicts PR/SM will power or 2) all of the vertical-low logical cores that z/VM predicts will be needed to help cover the workload plus the CPUPAD setting. Small unparks only the logical cores needed to cover the workload plus the CPUPAD setting. Large is the default until z/VM 7.2, then it becomes MEDIUM.
  • Commands for the recommendations above:
    CP SET SRM UNPARKING LARGE CP SET SRM EXCESSUSE TYPE IFL HIGH CP SET SRM CPUPAD TYPE IFL 200%


  • CP Query SRM: Used to display System Resource Management items (only relevant options are shown here).
  •                 +-ALL----------+
    >>--Query--SRM--+--------------+--------------------------------------------><
                    +-CPUPAD-------+
                    +-DSPWDMethod--+
                    +-EXCESSuse----+
                    +-POLARization-+
                    +-UNPARKing----+
    
    Example: (only relevant items are shown - all are defaults on a z/VM 7.1 system)
    q srm
    POLARIZATION: VERTICAL
    GLOBAL PERFORMANCE DATA: ON
    EXCESSUSE: CP-MEDIUM  ZAAP-MEDIUM  IFL-MEDIUM  ICF-MEDIUM  ZIIP-MEDIUM
    CPUPAD: CP-100%  ZAAP-100%  IFL-100%  ICF-100%  ZIIP-100%
    DSPWDMETHOD: RESHUFFLE
    UNPARKING: LARGE
    

  • CP Query PROCessors: Used to display the status of the processors.
  • >>--Query--PROCessors--+----------+-----------------------------------------><
                           +-EXPanded-+
                           +-TOPOlogy-+
    

    Examples:

    Q PROCessor
    PROCESSOR 0000 MASTER IFL  CORE 0000
    PROCESSOR 0001 ALTERNATE IFL  CORE 0000
    PROCESSOR 0002 ALTERNATE IFL  CORE 0001
    PROCESSOR 0003 ALTERNATE IFL  CORE 0001
    PROCESSOR 0004 STANDBY IFL  CORE 0002
    PROCESSOR 0005 STANDBY IFL  CORE 0002
    
  • Shows each processor - MASTER, ALTERNATE, STANDBY or PARKED.
  • Q PROCessor TOPOlogy
    TOPOLOGY
      NESTING LEVEL: 02  ID: 01
        NESTING LEVEL: 01  ID: 02
          PROCESSOR 0000  MASTER     IFL   VM  0000  CORE  0000
          PROCESSOR 0001  ALTERNATE  IFL   VM  0000  CORE  0000
          PROCESSOR 0002  ALTERNATE  IFL   VL  0001  CORE  0001
          PROCESSOR 0003  ALTERNATE  IFL   VL  0001  CORE  0001
    
  • Shows each processor's processor type - MASTER, ALTERNATE, STANDBY or PARKED.
  • Shows each processor's mode - HZ (Horizontal), VL (Vertical Low), VM (Vertical Medium) or VH (Vertical High)

  • Back to top of page