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

191 lines
12 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?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="Performance explorer definitions" />
<meta name="abstract" content="The parameters and conditions that determine what data performance explorer collects and how it collects it are configured and stored using performance explorer definitions. This topic explains how to use these definitions and provides a sample illustrating a simple definition." />
<meta name="description" content="The parameters and conditions that determine what data performance explorer collects and how it collects it are configured and stored using performance explorer definitions. This topic explains how to use these definitions and provides a sample illustrating a simple definition." />
<meta name="DC.Relation" scheme="URI" content="rzahxpexcon.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/addpexdfn.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahxreportpex.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahxpexcfg.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="rzahxpexconpexdef" />
<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>Performance explorer definitions</title>
</head>
<body id="rzahxpexconpexdef"><a name="rzahxpexconpexdef"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Performance explorer definitions</h1>
<div><p>The parameters and conditions that determine what data performance
explorer collects and how it collects it are configured and stored using performance
explorer definitions. This topic explains how to use these definitions and
provides a sample illustrating a simple definition.</p>
<p>To collect performance explorer data, you need to tell performance explorer
what data to gather. You do this by using the <span class="cmdname">Add Performance Explorer
Definition (ADDPEXDFN)</span> command to create a performance explorer
definition. After the definition is completed and saved, you are ready to
continue to the next task in the cycle of work.</p>
<p>Before creating a new definition, consider what kinds of information you
want and the amount of detail you need. The performance explorer provides
the following types of data collection:</p>
<div class="section"><h4 class="sectiontitle">Statistics type definitions</h4><p>Identifies applications
and IBM<sup>®</sup> programs
or modules that consume excessive CPU use or that perform a high number of
disk I/O operations. Typically, you use the statistical type to identify programs
that should be investigated further as potential performance bottlenecks.</p>
<ul><li>Good for first order analysis of <span class="keyword">i5/OS™</span> programs,
procedures, and MI complex instructions. <ul><li>Gives number of invocations</li>
<li>Gives both inline and cumulative CPU usage in microseconds</li>
<li>Gives both inline and cumulative number of synchronous and asynchronous
I/O</li>
<li>Gives number of calls made</li>
</ul>
</li>
<li>Works well for short or long runs</li>
<li>Size of the collected data is fairly small and constant for all runs</li>
<li>Run time collection overhead of ILE procedures may be a problem due to
the frequency of calls. Although run time is degraded, the collected statistics
are still accurate because Performance Explorer removes most of the collection
overhead from the data.</li>
<li>Uses combined or separated data areas. The MRGJOB parameter on the ADDPEXDFN
command specifies whether all program statistics are accumulated in one data
area, or kept separate (for example, one data area for each job).</li>
</ul>
<p>The statistics can be structured in either a hierarchical or flattened
manner.</p>
<ul><li>A hierarchical structure organizes the statistics into a call tree form
in which each node in the tree represents a program procedure run by the job
or task.</li>
<li>A flattened structure organizes the statistics into a simple list of programs
or procedures, each with its own set of statistics.</li>
</ul>
<p>Here is an example of a performance explorer statistics definition
called MYSTATS that will show CPU and disk resource usage on a per program
or procedure level.</p>
<pre> ADDPEXDFN DFN(MYSTATS) /* The name of the definition. */
TYPE(*STATS) /* The type of definition */
JOB(*ALL) /*All Jobs */
TASKS(*ALL) /*All tasks */
DTAORG(*FLAT) /* Do not keep track of who calls who */</pre>
</div>
<div class="section"><h4 class="sectiontitle">Profile type definitions</h4><p>Identifies high-level language
(HLL) programs, <span><img src="./delta.gif" alt="Start of change" />modules, procedures, and statements<img src="./deltaend.gif" alt="End of change" /></span> that
consume excessive CPU utilization based on source program statement numbers. </p>
<ul><li>Program profile (specify TYPE(*PROFILE) and PRFTYPE(*PGM) on the ADDPEXDFN
command) <ul><li>Gives detailed breakdown of where you are spending time within a set of
programs within a specific job.</li>
<li>Can summarize the data by program, module, procedure, statement, or instruction.</li>
<li>Size of collection is fairly small and constant regardless of length of
run.</li>
<li>Limit of 16 MI programs means that you should use this as a second order
analysis tool.</li>
<li>Can vary overhead by changing sample interval. An interval of 2 milliseconds
seems a good first choice for benchmarks.</li>
<li>No restrictions on pane size due to the number of programs specified or
the size of the programs specified.</li>
</ul>
<p>Here is an example of a performance explorer program profile definition
called PGMPROF that will show usage for a particular procedure.</p>
<pre> ADDPEXDFN DFN(PGMPROF) /* The name of the definition. */
TYPE(*PROFILE) /* The type of definition */
JOB(*ALL) /*All Jobs */
PGM((MYLIB/MYPGM MYMODULE MYPROCEDURE)) /* The name of the program to monitor. */
INTERVAL(1) /* 1-millisecond samples will be taken. */</pre>
</li>
<li>Job profile (specify the following on the ADDPEXDFN command: TYPE(*PROFILE)
and PRFTYPE(*JOB)) <ul><li>Gives detailed breakdown of where you are spending time in the set of
jobs or tasks of the collection.</li>
<li>Size of collection is relatively small but not constant. The size increases
as the length of the run increases.</li>
<li>Can profile all jobs and tasks on the system or can narrow the scope of
data collected to just a few jobs or tasks of interest.</li>
<li>Can vary overhead by changing sample interval. An interval of 2 milliseconds
seems a good first choice for benchmarks.</li>
</ul>
<p>Here is an example of a performance explorer job profile definition
called ALLJOBPROF that will show usage for all your jobs.</p>
<pre> ADDPEXDFN DFN(ALLJOBPROF) /* The name of the definition. */
TYPE(*PROFILE) /* The type of definition */
PRFTYPE(*JOB) /* A job profile type will be monitored. */
JOB(*ALL) /*All Jobs */
TASKS(*ALL) /*All tasks */
INTERVAL(1) /* 1-millisecond samples will be taken. */</pre>
</li>
</ul>
</div>
<div class="section"><h4 class="sectiontitle">Trace definitions</h4><p>Gathers a historical trace of
performance activity generated by one or more jobs on the system. The trace
type gathers specific information about when and in what order events occurred.
The trace type collects detailed reference information about programs, Licensed
Internal Code (LIC) tasks, <span class="keyword">i5/OS</span> job,
and object reference information.</p>
<ul><li>Some common trace events are: <ul><li>Program and procedure calls and returns</li>
<li>Storage, for example, allocate and deallocate.</li>
<li>Disk I/O, for example, read operations and write operations.</li>
<li>Java™ method,
for example, entry and exit.</li>
<li>Java,
for example, object create and garbage collection.</li>
<li>Journal, for example, start commit and end commit.</li>
<li>Synchronization, for example, mutex lock and unlock or semaphore waits.</li>
<li>Communications, for example, TCP, IP, or UDP.</li>
</ul>
</li>
<li>Longer runs collect more data.</li>
</ul>
<p>Here is an example of a performance explorer trace definition called
DISKTRACE that will show usage for all disk events.</p>
<pre> ADDPEXDFN DFN(DISKTRACE) /* The name of the definition. */
TYPE(*TRACE) /* The type of definition */
JOB(*ALL) /*All Jobs */
TASKS(*ALL) /*All tasks */
TRCTYPE(*SLTEVT) /* Only selected individual events and machine instructions
are included in the trace definition */
SLTEVT(*YES) /* *SLTEVT allows you to specify individual machine instructions
and events to be specified in addition to the categories of events
available with the TRCTYPE parameter. */
DSKEVT((*ALL)) /* All disk events are to be traced. */</pre>
<p><img src="./delta.gif" alt="Start of change" />Here
is an example of a performance explorer trace definition called HEAPEVENTS.<img src="./deltaend.gif" alt="End of change" /></p>
<img src="./delta.gif" alt="Start of change" /><pre> ADDPEXDFN DFN(HEAPEVENTS) /* The name of the definition. */
TYPE(*TRACE) /* The type of definition */
JOB(*ALL) /*All Jobs */
TASK(*ALL) /*All tasks */
MAXSTG (100000) /*Maximum storage. Set to 100000 because the default of
10000 KB is often too small for the large number of heap events that can be
generated when tracing all jobs and all tasks.*/
TRCTYPE(*HEAP) /* Selects all heap events from the STGEVT
(storage events) parameter. */</pre><img src="./deltaend.gif" alt="End of change" />
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahxpexcon.htm" title="Performance explorer works by collecting detailed information about a specified system process or resource. This topic explains how performance explorer works, and how best to use it.">Performance explorer concepts</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzahxreportpex.htm" title="After you have collected performance data with a performance explorer session, you can view it by running the included reports or by querying the database files directly.">Performance explorer reports</a></div>
</div>
<div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="rzahxpexcfg.htm" title="To collect detailed trace information, you need to tailor performance explorer to work optimally with the application process from which the trace is being taken.">Configure performance explorer</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="../cl/addpexdfn.htm">Add Performance Explorer Definition (ADDPEXDFN) command</a></div>
</div>
</div>
</body>
</html>