ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzahx_5.4.0.1/rzahxcalculation.htm

164 lines
10 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Reporting CPU utilization" />
<meta name="abstract" content="Find out how the total CPU that is consumed across virtual processors is reported." />
<meta name="description" content="Find out how the total CPU that is consumed across virtual processors is reported." />
<meta name="DC.Relation" scheme="URI" content="rzahxperftoolsconcepts.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahxqapmsyscpu.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzahxcalculation" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Reporting CPU utilization</title>
</head>
<body id="rzahxcalculation"><a name="rzahxcalculation"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Reporting CPU utilization</h1>
<div><p>Find out how the total CPU that is consumed across virtual processors
is reported.</p>
<p>Prior to V5R3, processor utilization was calculated as a percentage of
the available CPU time. Collection Services reported, in the performance database
files, the time used on each processor along with elapsed interval time. Users
of this data, such as the Performance Tools reports and displays, needed to
add up the time used on each processor to get the total system CPU that was
consumed. The available CPU time was calculated as the number of processors
in the partition multiplied by the duration of the data collection interval.
Finally, the CPU time was divided by the calculated available time to get
the utilization percentages.</p>
<p>The problem with the previous methodology is that all users of the data
assumed whole virtual processors and depended on no changes to the configured
capacities. Logical partitions with partial processor capacities and the capability
to do dynamic configuration no longer worked with this methodology. Temporary
solutions for minimizing the impacts of these problems included scaling the
utilization of the system processors to what would be reported for a whole
number of processors and cycling Collection Services when the configuration
changed. Because the individual job CPU time was not scaled, the additional
time was accounted for by reporting it as being consumed by HVLPTASK. The
HVLPTASK task did not actually use CPU, but CPU time was shown to be consumed
by HVLPTASK for accounting purposes. The CPU time charged to HVLPTASK scaled
the amount of work that was done by real jobs, which resulted in the system
CPU percent utilization going from 0 to 100 in direct proportion to the amount
of customer work that was performed.</p>
<p>In V5R3, Collection Services reports the total CPU that is consumed and
the total CPU that is available to the partition within the interval. The
concept of HVLPTASK and CPU scaling to whole virtual processors in shared
processor environments does not exist. Collection Services no longer cycles
the collection when the configuration changes.</p>
<p>Collection Services now reports the total processor time that is consumed
by the partition along with the amount of processor time that was available
to be consumed within the partition, regardless of the number of virtual processors
that are configured, the partition units that are configured, or how they
changed during the interval. To calculate utilization, users of this data
divide the reported CPU consumed by the available capacity. This method of
calculating CPU utilization eliminates the increasingly error-prone task of
computing available CPU time. CPU utilization that is calculated with these
new metrics is accurate regardless of how many processing units (whole or
fractional) exist, when the processing units changed, or how often the units
changed.</p>
<p>Several reasons account for this change in calculating CPU utilization.
One reason is that with scaling utilization for jobs or groups of jobs appeared
to be much smaller than would be anticipated. This concept is demonstrated
in the example that follows. Another reason is that a configuration change
could make CPU reporting not valid. Traditionally, the number of CPUs was
based on the value that was configured at the beginning of a collection and
an IPL was needed to change it. When dynamic configuration was introduced,
Collection Services cycled the collection to handle the configuration changes,
which assumed that changes would be infrequent. However, the more frequent
the change, the more cycling occurs. If the changes are too frequent, collecting
performance data is not possible. Lastly, even if the proper configuration
data were reported and used for every interval, you would not know what happened
between the time the interval started and until it completed. Utilization
would still be calculated incorrectly in any interval where there was one
or more configuration changes.</p>
<div class="section"><h4 class="sectiontitle">Example</h4><p>Partition A has a capacity of 0.3 processor
units and is defined to use one virtual processor. The collection interval
time is 300 seconds. The system is using 45 seconds of CPU (15 seconds by
interactive jobs and 30 seconds by batch jobs). In this example, the available
CPU time is 90 seconds (.3 of 300 seconds). The total CPU utilization is 50%.</p>
<p>Prior
to V5R3, when the numbers were scaled, system CPU usage is reported as 150
seconds. 150 seconds divided by 300 seconds of interval time results in 50%
utilization. The interactive utilization is 15 seconds divided by 300 seconds,
which is 5%. The batch utilization is 30 seconds divided by 300 seconds, which
is 10%. The HVLPTASK is getting charged with 35% utilization (150 seconds
minus 45 seconds), or 105 seconds divided by 300 seconds. These percentages
give us a total of 50%.</p>
<p>Beginning in V5R3, the 45 seconds of usage is
no longer scaled but is reported as is. The calculated CPU time that is derived
from the reported consumed CPU time divided by the reported available capacity
is 50% (45 seconds divided by 90 seconds). The interactive utilization percentage
is 17% (15 seconds divided by 90 seconds). The batch utilization percentage
is 33% (30 seconds divided by 90 seconds).</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" id="d0e43">Release</th>
<th valign="top" id="d0e45">Total CPU</th>
<th valign="top" id="d0e47">Interactive</th>
<th valign="top" id="d0e49">Batch</th>
<th valign="top" id="d0e51">HVLPTASK</th>
</tr>
</thead>
<tbody><tr><td valign="top" headers="d0e43 ">OS/400 V5R2 or earlier</td>
<td valign="top" headers="d0e45 ">50%</td>
<td valign="top" headers="d0e47 ">5%</td>
<td valign="top" headers="d0e49 ">10%</td>
<td valign="top" headers="d0e51 ">35%</td>
</tr>
<tr><td valign="top" headers="d0e43 ">OS/400<sup>®</sup> V5R3
or later</td>
<td valign="top" headers="d0e45 ">50%</td>
<td valign="top" headers="d0e47 ">17%</td>
<td valign="top" headers="d0e49 ">33%</td>
<td valign="top" headers="d0e51 ">N/A</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Considerations</h4><p>In V5R3, the <span class="cmdname">Convert Performance
Data (CVTPFRDTA)</span> command performs normally. However, the data in
the converted files is changed to be consistent with the unscaled system CPU
data (QAPMSYSCPU database file). The results should be the same as if the
data were collected on a V5R3 system, but the data is different than the values
that existed in the files in a prior release.</p>
<p>The existing and unchanged
tools that calculate CPU utilization do not show the correct results for shared
processor partitions or partitions that have had configuration changes during
data collection. This includes those tools that use the performance database
as well as those that use the <span class="apiname">QPMLPFRD</span> API.</p>
<p>You can
copy a V5R3 management collection object (*MGTCOL) to a prior release and
generate the database files. However, you should be aware of the following:</p>
<ul><li>The reported CPU data remains unscaled (shared processor environments).
This means that the total system CPU that is reported by the tools using virtual
processors (including Performance Tools) is not correct.</li>
<li>A management collection object (*MGTCOL) that spans configuration changes
will result in an inaccurate calculation of the percentage of CPU during those
intervals after the change occurred. </li>
</ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahxperftoolsconcepts.htm" title="Describes a variety of tools to help you collect and analyze performance information. Find detailed information about exactly which tools perform which functions and how they work.">Performance Tools concepts</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="rzahxqapmsyscpu.htm">Performance data files: QAPMSYSCPU</a></div>
</div>
</div>
</body>
</html>