Professional Documents
Culture Documents
2 Strobe
Created By:
Nancy T Love on 11/04/98 at 03:53 PM
Category: Chapter 3. Tuning Tools
STROBE10 is a vendor program product licensed by American Express for use in determining where and
how time is spent in online subsystems or batch processing programs. In the realm of application
software efficiency, STROBE represents a detailed microscope within the performance tuners bag of
tricks. At completion of its data gathering step, STROBE produces a collection of reports that help you
determine where and how to revise a program or subsystem application to improve its throughput
efficiency. Due to feature additions to the base product licensed by American Express, STROBE can
show information specific to CICS, DB2, and IMS subsystems when they are used within the application
program monitored.
Executing a complete STROBE analysis session is a two or three step process, depending on whether
the Index function is utilized. The Index feature obtains address information from source language
compiler listing output, producing a map data set that relates programmer assigned procedure names and
statement numbers to addresses. This feature assists in the effort to locate high CPU time-consuming
portions of application program code by labeling addresses with the source code procedure names and
references. STROBE contains the Index feature and JCL procedures to support programs written in
COBOL, PL/I, FORTRAN, IBM C/370, SAS/C, Assembler language, Natural programs, and CA-IDMS
dialogs. If other data collection tools are available, STROBE can supplement its reports with that
information. Detailed information on how to use the Index feature and other special STROBE features
can be found in the *STROBE: Users Guide and the CICS, DB2 and IMS features guides.
APMpower is a workstation product designed to facilitate STROBE. In addition to initiating all of
STROBE's functionality from a PC/3270 session, it provides a graphic interface with drill-down capability,
insight to system utility (SVCs) through program descriptions and performacne improvement guidelines,
and DB2 SQL statement interactive tuning. There are a limited number of individual PC licenses for
APMpower. If your application group would like to apply for one, contact Mohammad R Alba (as noted in
the Introduction section of this manual).
*NOTE:
The lastest release of STROBE supports IBM's MVS on-line documentation system, Bookmanager.
These manuals are there.
~~~~~~~~~~
Report
Program usage by Procedure
Report
Transaction Usage by Control
Section Report
...........................
USER DEFAULTS
ADD ACTIVE
ADD QUEUED
STATUS
PROFILE
INDEX
CROSS-SYSTEM
MESSAGES
LOG UTILITY
TUTORIAL
CHANGES
EXIT
Terminate STROBE/ISPF
STROBE is a registered trademark of PROGRAMART
CORPORATION
STROBE is a CPU localized software product; it does not communicate between different
CPUs in a multi-CPU complex. Measurement requests must be queued to the same CPU
on which the application program to be analyzed will be executed. In cases where it is
impossible to foretell which CPU will execute a batch job to be analyzed, measurement
requests will have to be queued to each CPU in the complex (i.e. DIPA, DIPB and DIPC on
the IPC West complex). After the batch job step being measured has completed execution
the remaining queued requests on the other CPUs may be cancelled. Measurement
requests may be queued, modified, cancelled or profiled to/from CPUs other than the one
that you are currently logged on to by using one of two different methods.
1.
Logoff the current CPU and logon to each CPU in the complex one at a time to
perform the needed measurement request action(s).
2.
Use option 6 CROSS-SYSTEM from the STROBE main menu to cause batch jobs
to be created to perform the desired request function(s). In this case the terminal
operator is given the opportunity to supply a CPU routing statement (/*ROUTE XEQ
cpuid) on the jobcard to cause the requested action to execute on the appropriate
system.
Regardless of which one is used, separate actions are needed to establish a measurement
request on each CPU to cover the situation where it is not known which CPU will execute
the target job/step. For most cases it is likely that the second method will be the easiest to
use. Figure 8 shows the options menu which is presented when item 6 is selected from the
main menu to work with cross-system options.
ADD ACTIVE
ADD QUEUED
CHANGE ACTIVE
CHANGE QUEUED
LIST/DELETE
JOB STREAM MENU
END
CANCEL
To request the start of a new measurement session use options 1 or 2 from the main menu
or the cross system options menu. From either menu, option 1 will create an active
measurement session for an already executing application program. Selecting this option
will present you with a screen that requires you to enter the JOBNAME, the desired length
of the STROBE monitoring session in minutes and the number of samples STROBE should
take. When the number of samples and the length of the monitoring session have been
reached the STROBE session will end.
In most cases involving batch jobs it is desirable to have the STROBE monitoring session
active for the entire duration of the targeted step within a job. In order to accomplish this a
queued request should be generated before the job to be monitored is started. This is
performed by selecting option 2 from either of the menus discussed above and results in
the display of the screen shown in Figure 9.
===> PLXS
To add a queued request, all information required for an active request must be supplied
with the addition of JCL procedure and/or step names. In the example screen displayed in
Figure 9 several fields have been filled out to demonstrate the creation of a queued
monitoring request. The jobname selected was THISJOB and step name THATSTEP was
specified inferring the absence of a JCL procedure name. Also, the TSO userid of PLXS
was entered and will be provided a notification when the STROBE measurement session
has ended. A session duration of 180 was given to indicate that the target job step is
expected to execute for approximately 3 hours. The session duration value and the default
target sample size value of 10,000 will be used by STROBE to determine what the initial
sampling rate should be. After providing information required by this screen the ENTER key
is pressed and the request is queued and assigned a request number as shown in the
upper right hand corner of the screen.
Warning
Always use STROBE as the data set name prefix for the sample data set. Any other high level qualifier may cause the S
session to fail RACF authority when creating the sample data set.
The STROBE Central Version facility maintains information about all active, queued and
completed measurement sessions. The STROBE request status screen shown in Figure
10 is accessed by specifying option 3 from the main menu (Figure 7). Cross-system
request numbers can be determined by specifying option 5 from the cross system options
menu (Figure 8). Caution should be exercised not to confuse duplicate monitoring session
request numbers within a complex. Request numbers assigned by STROBE are unique
only within each CPU.
Information which is displayed on the monitoring sessions status screen can be filtered so
as to display a subset of the total outstanding requests in a given CPU. To set up the
desired filtering, option 0 from the main menu should be selected to bring up the User
Default Options screen. The second option from this screen, STATUS MASK, will cause a
screen to be displayed where filtering criteria can be entered based on the ownerid
associated with each request.
Figure 10. STROBE queued requests status screen
=View
=Quit
C
D
=Change
=Delete
P
X
=Profile Report
=Delete with Data sets
=default Profile
Several different options can be specified on this screen for working with the status and
characteristics of individual measurement session requests. Online help text screens are
available for descriptions of the various options or the STROBE: User's Guide may be
consulted.
...........................
F - Foreground processing
Indexing ===>
...........................
$$$$$$$$$$
$$$$$$$$$$$
$$$$$
$$$$$$$$$
$$$$$$$$$
$$$$$
$$$$$$$$$$$
$$$$$$$$$
DFSRRC00
06/27/96
$$$$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$
$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$$$$$
$$$$$$$$$$$$
$$$$$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$$$$
$$$$$
$$$$$ $$$$$ $$$$$
$$$$$ $$$$$ $$$$$ $$$$$
$$$$$
$$$$$ $$$$$ $$$$$
$$$$$
$$$$$$$$$$$
$$$$$$$$$$$
$$$$$
$$$$$$$$$$$
$$$$$
$$$$$
$$$$$$$$$$
$$$$$$$$$$$
$$$$$
$$$$$$$$$$$
$$$$$
$$$$$
$$$$$ $$$$$ $$$$$
$$$$$
$$$$$ $$$$$
$$$$$$$$$$$$$
$$$$$$$$$$$$ $$$$$$$$$$$
$$$$$
$$$$$
$$$$$
$$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$$$$
--------------
-------
-------------
JOB
MEASURME
MEASUREM
ENVINRON
NT
ENT
MENT
PARAMETER
STASTICS
----------------
S ------------
PROGRAM MEASURED
DFSRRC00
JOB NAME
CRC020
JOB NUMBER
JOB19843
-------------
240 MIN
15,000
REQUEST NUMBER
(q)
20.29
-
79.71
.70
PCT
STEP NAME
STEP2.STEP
010
DATE OF SESSION
06/21/96
TIME OF SESSION
07.43.35
1.55
PCT
SUBSYSTEM
19,592
TOTAL SAMPLES
19,592
PROCESSED
CONDITION CODE
SYSTEM -
C-0000
ESA SP5.1.0
1.04/SEC
1.04/SEC
----------------- REPORT
PARAMETERS -----------------
CPU MODEL
9021-9X2
SYSTEM ID
DIPB
7,148K
131,072K
64 BYTES
SORTSIZE
999,999
LINES/PAGE
60
DASD 2.8%
PTF LEVEL STROBE TAPE NUMBER
CPU TIME -
333 MIN
7.48 SEC
56 MIN
16.86 SEC
WAIT TIME
220 MIN
37.29 SEC
STRETCH TIME
56 MIN
13.33 SEC
SRB TIME
2 MIN
21.61 SEC
OUT-
9.4.840/775
-
000-
PAGES IN -
S94669
PAGING RATE
EXCPS
0.00/SEC
1,575,719
89.94/SEC
SAMPLE
DATA SET
-STROBE.CR
C020.S002D0
01
*STROBE
IS LICENSED
BY
PROGRAMA
RT FOR USE
BY
AMERICAN
EXPRESS,
WEST
BEHREND
DRIVE
...........................
...........................
...........................
DFSRRC00
PAGE
RESOURC
DDNAME
* IS
.------------------------------------------------------------------------------------------------------------------------------------------------------------------.
DFSRRC00
CPU
.-
12111122122332211112122221221112113221221111222222212123333111
21121122222122112222222233132232222.
DB6077
3390
12223322333223332333333343431134333323332221222233322223432234
444444444433343222133232322322222343.
DB6451
3390
12112222322323334343333333332221232222233224333322223312112121
111111111211222132333232221223323322.
DB8856
3390
.21331112-
DB6451X
3390
DB6877X
3390
DB2440
3390
GSM0600O
3490
GSM0650O
3490
GSM0652O
3490
----
- -
- --
-441-----11----2221
--3121 -11-11-21-11
-.
. ---------1------------ --------1-1---1---1----1121---1----11-----1----11111-----1-------------------.
.FILEMGT
OTHER
.32- -- --------- -- ----- -- ---- - - -- - -------- ---1------ ------- ----- ----- ------ --- I/O
.-1111112111212112111-111111111-
11111111111111211111211222212221111111311111111122111112112112
111122.
0 ------ 0 ------ 1 ------ 1 ----- 2 ----- 2 ----- 3 ----- 3 ----- 4 ----- 4 ----- 5 ----- 5
0 ------ 5------ 0 ------ 5 ----- 0 ----- 5 ----- 0 ----- 5 ----- 0 ------ 5 ----- 0 ----- 5
----- 0 ----- 5 ----- 0 ----- 5 ----- 0 ----- 5 ----- 0 ----- 5 ----- *
START RUN
END RUN
RESOURCE
DDNAME
SERVICED
SERVICED
SERVICED
SOLO
SOLO
SOLO
CAUSING
SOLO
CAUS
BY CPU
BY I/O
BY EITHER
IN CPU
IN I/O
IN EITHER
CPU WAIT
TIME
CPU W
DFSRRC00
CPU
16.58
.00
16.58
14.43
.00
14.43
8.26
14.43
DB6077
3390
.42
26.16
26.58
.38
24.18
24.57
26.12
39.00
DB6451
3390
.27
20.87
21.10
.20
19.65
19.88
20.75
58.88
DB8856
3390
.17
4.73
4.89
.16
4.67
4.83
4.73
63.71
DB6451X
3390
.15
3.10
3.24
.12
2.97
3.10
3.03
66.81
DB6077X
3390
.33
2.51
2.84
.29
2.36
2.65
2.51
69.46
DB2440
3390
.29
1.99
2.27
.23
1.88
2.11
1.98
71.57
GSM06000
3490
.00
292
2.92
.00
1.52
1.52
1.49
73.09
GSM06500
3490
.00
2.49
2.49
.00
1.41
1.41
1.35
74.50
GSM06520
3490
.00
2.56
2.56
.00
1.40
1.40
1.41
75.910
.19
1.24
1.43
.16
1.23
1.39
2.24
77.29
1.90
9.65
11.55
1.69
5.71
7.40
5.85
84.69
.FILEMGT
OTHER
I/O
*STROBE IS LICENSED BY PROGRAMART FOR USE BY AMERICAN EXPRESS, WEST BEHREND DRIVE
We have previewed the first three sections of a STROBE measurement profile report. These three
sections are always printed for all measurment profile report requests and are usually the best place to
start when reviewing measurement results. Now let's take a look at a general process map to follow
when diagnosing the results of a measurement profile.
...........................
addition to providing feedback on how application programs affect system resources, the profile can
indicate instances in which system activity is inhibiting application program performance. The profile can
also serve as a learning tool, guiding your development of application programs so that they use
resources efficiently.
The flowchart shown in Figure 14 provides a path that many analysts find useful in locating opportunities
to improve performance. Note that the chart focuses on decreasing either CPU consumption or time
spent waiting for resources to become available. The STROBE Performance Profile contains specific
report sections that will enable you to follow either path or both of them.
Figure 14. STROBE Performance Profile Interpretation Flowchart
MEASUREMENT SESSION DATA
VALID
PROFILE?
YES
CPU
WHATS
USING
CPU?
WAIT
CPU OR
WAIT?
WHATS
USING
WAIT?
RESOURCE DEMAND
DISTRIBUTION
INTERNAL
CONTENTION?
YES
REDUCE
CONTENTION
NO
OVERHEAD?
YES
AVOID
FILES?
YES
YES
.FILEMGT?
YES
REDUCE
ACCESS
NO
NO
SOURCE
CODE?
HIGH
PHYSICAL
ACCESS?
YES
REDUCE .FILEMGT
WAIT TIME BY MODULE
TIME DISTRIBUTION OF ACTIVITY LEVEL
I/O FACILITY UTILIZATION SUMMARY
ATTRIBUTION OF CPU WAIT TIME
IMPROVE
NO
TASK WAIT?
YES
Note: This chart was copied from the STROBE: Concepts and Facilities guide, Chapter 5:
Interpreting the STROBE Performance Profile, (C) Programart Corporation.
We made it! We've gone through the STROBE analysis process from monitoring request creation to
profile report generation. Now, let's tidy up this discussion with a few final points and recommendations
regarding the use of this powerful performance analysis tool.
For detailed application program reviews it is very helpful to have a compile listing handy. For COBOL
programs the compile should be executed with the PMAP or LIST options active to force the
production of an assembler translation listing of the program. You will find this listing quite useful
even if you do not program in assembler and the Performance Management group will require it when
asked to assist with the review of an application program.
For each activity reported in a performance profile STROBE shows percentages for both total and
solo resource usage time. The difference between these two values represents an elusive concept,
but an important one to understanding performance problems. The total time percentage represents
all the time during which the activity (I/O processing, CPU time, SRB time, etc.) used a resource.
Solo time is the percentage of time during which one and only one activity was progressing for the
measured job step. The focal issue is the degree to which activities execute concurrently within the
computer system.
Let's use a simple example to clarify this concept. Assume that we have a single program (no
subprograms) which is reading a large flat file sequentially. In most cases we would like to see a
significant difference between solo time and total time spent in processing I/Os to the input file/data
set; not necessarily huge, but significant. A significant difference could show good buffering
performance, indicating that the program is accomplishing other work concurrently with access
method I/O operations. On the other hand, if solo I/O time is almost as high as, or equal to, total I/O
time, this would indicate a possible bottleneck presented by the I/Os to the large flat file. Some type of
optimization of the data set or improved buffering would be called for by this situation.
When requesting STROBE measurement sessions specify between 10,000 (default) and 15,000
samples. Very high sample numbers add greatly to CPU time overhead and do not increase report
accuracy.
Do not STROBE programs that issue OS checkpoints as requested by the JCL parameter
CHKPT=EOV. Executing a STROBE session against one of these will cause the object program to
stop taking checkpoints. It is, however, acceptable to initiate an active STROBE session for a portion
of the execution of one of these program types; perhaps for 15 minutes within the middle of a job step
for example. In this case, the program will resume taking checkpoints when the STROBE session is
ended.
Note: IMS checkpoints are compatible with STROBE and will not be affected by a STROBE
measurement request.
Do not execute STROBE measurement requests against started tasks such as CICS, DFSMS, IMS
control regions, IMS message processing regions (MPR) or TSO. Most started tasks will incur
substantial performance degradation if a measurement session is attempted; some may even abend.
If it is felt that these types of measurement requests are needed, contact should be made with the
MVS Operating Systems Group or the Performance Management group for assistance.
STROBE sessions executed for interpretive programs such as Assist, Eztrieve and SAS will produce
little usable results. Most activity will not point to user created code and only I/O information will be of
any use at all.
For reasons similar to interpretive programs, do not execute STROBE requests for performance
utilities such as BMC's Image Copy and Sort. In addition to JES messages, most of these programs
output diagnostic messages of their own which can provide sufficient information for tuning efforts. If
these messages do not supply enough information to answer questions regarding utility performance
the Performance Management group should be contacted for assistance.
JCL Messages
S TROBE Performance Profile
Application Pgm compile Listing
Execution History Information
The benefit of having and understanding execution history information can be hours of research time
saved. The key here is to never ignore the obvious. For example, suppose that the execution history of a
given daily batch job shows that it deviated from normal execution patterns on a specific date. Before
jumping into a STROBE measurement session it would be well worth the effort to check for variances in
data inputs and/or implications of business cycles; i.e. is the job performing year-end processing? Always
remember to take a step back from the trees and take a look at the forest as a whole!
One final point, never hesitate to call on the members of the Performance Management group team when
in doubt. We love challenges and answering questions is always a two-way learning opportunity. Now,
with tools in hand, let's venture forth to discuss how we can use them.
...........................