Previous Topic: 01000: System ID Incorrect for Hardware Serial Number

Next Topic: 01002: CPU Underutilized

01001: CPU Usage Imbalance Between Multiprocessors


    FILE: CPU Processor Activity File
    SAS FILE NAME: DAYS.HARCPU01
    SOURCE LOCATION: prefix.MICS.USER.SOURCE(DYRMFEXC)

    SEVERITY: Impacting            (SEVERITY='I')
    MANAGEMENT AREA: Performance   (MGMTAREA='PERFORMANCE')

    PURPOSE:  Detects imbalanced CPU utilization between
processors in a multiprocessor central electronic complex.

    RATIONALE:  All CPUs in multiprocessor central complex
should reasonably share the load (that is, 75% busy on CPU 0
and 65% busy on CPU 1).  A significant imbalance can result
from unexpected CPU affinity or ineffective configuration
symmetry.  The problems that may be related to symmetrical or
asymmetrical configurations are installation dependent and
each installation should evaluate their unique configuration
and workload characteristics to determine what is the
reasonable processing difference to be used for this
exception.

    DEFINITION:  This exception is detected when the
difference between the most and least busy CPUs exceeds an
installation defined limit.  There should not be greater than
a ten percentage point differential in the two busy
percentages.

    EXCEPTION STATEMENTS:  The SAS statements identifying the
exception situation and describing the condition are stored
in the source member named in SOURCE LOCATION and are
described below:

** 01001 CPU USAGE IMBALANCE BETWEEN MULTIPROCESSORS;
*;
IF CPUNOCPU>1 THEN DO;
  IF CPUPC0BS=0 THEN CPUPC0BS=.;
  IF CPUPC1BS=0 THEN CPUPC1BS=.;
  IF CPUPC2BS=0 THEN CPUPC2BS=.;
  IF CPUPC3BS=0 THEN CPUPC3BS=.;
  IF CPUPC4BS=0 THEN CPUPC4BS=.;
  IF CPUPC5BS=0 THEN CPUPC5BS=.;
  IF CPUPC6BS=0 THEN CPUPC6BS=.;
  IF CPUPC7BS=0 THEN CPUPC7BS=.;
  IF CPUPC8BS=0 THEN CPUPC8BS=.;
  IF CPUPC9BS=0 THEN CPUPC9BS=.;
  IF CPUPCABS=0 THEN CPUPCABS=.;
  IF CPUPCBBS=0 THEN CPUPCBBS=.;
  IF CPUPCCBS=0 THEN CPUPCCBS=.;
  IF CPUPCDBS=0 THEN CPUPCDBS=.;
  IF CPUPCEBS=0 THEN CPUPCEBS=.;
  IF CPUPCFBS=0 THEN CPUPCFBS=.;
  CPUMIN=MIN(CPUPC0BS,CPUPC1BS,CPUPC2BS,CPUPC3BS,
             CPUPC4BS,CPUPB5BS,CPUPC6BS,CPUPC7BS,
             CPUPC8BS,CPUPC9BS,CPUPCABS,CPUPCBBS,
             CPUPCCBS,CPUPCDBS,CPUPCEBS,CPUPCFBS);
  CPUMAX=MAX(CPUPC0BS,CPUPC1BS,CPUPC2BS,CPUPC3BS,
             CPUPC4BS,CPUPB5BS,CPUPC6BS,CPUPC7BS,
             CPUPC8BS,CPUPC9BS,CPUPCABS,CPUPCBBS,
             CPUPCCBS,CPUPCDBS,CPUPCEBS,CPUPCFBS);
  CPUDIFF=CPUMAX-CPUMIN;
  IF CPUDIFF > percent
    THEN DO;
     EXCCODE='01001'; SEVERITY='I'; MGMTAREA='PERFORMANCE';
     EXCDESC1='CPU USAGE IMBALANCE BETWEEN MULTIPROCESSORS';
     EXCDESC2='DIFFERENCE=' || PUT(CPUDIFF,5.1) || '%';
     LINK HIT;
   END;
 END;

    THRESHOLD MODIFICATION:  The user should modify the
percent value according to the following conventions:

    percent - The percent imbalance between processors is
specified.  A 10 percent threshold would appear as:

    CPUDIFF > 10