51
1 Using Compuware Strobe to Save CPU Four Real-life Cases From the Files of CPT Global Spencer Hallman, Product Manager, Compuware David Stephens, Senior Consultant, CPT Global December 15, 2016

Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

Embed Size (px)

Citation preview

Page 1: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

1

Using Compuware Strobe to Save CPUFour Real-life Cases From the Files of CPT GlobalSpencer Hallman, Product Manager, CompuwareDavid Stephens, Senior Consultant, CPT GlobalDecember 15, 2016

Page 2: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

2

ShareIf you like what you see in this presentation, share it with your social networks!

Page 3: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

3

David Stephens• Senior Consultant,

CPT Global• Lead Systems

Programmer, Longpela Expertise

• z/OS systems since 1989, consultant since 2009

• Author of “What On Earth is a Mainframe?”

Today’s Presenters

Spencer Hallman• Product Manager,

Compuware• Subject Matter Expert,

Mainframe Performance• Experience in programming

on multiple platforms, providing technical support and working in Operations Research

Page 4: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

4

Page 5: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

5

Compuware and CPT Global Partnership• Worked together

for many years• Formal partnership

announced recently• Leverage Compuware’s

best of breed tools and CPT Global’s world-leading performance and tuning services

Page 6: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

6

Why Listen to David Stephens About Strobe?• One of world’s leading experts

in CPU reduction• Involved in over 12 CPU

reduction projects in last 6 years• Been using Compuware

Strobe since 2009• Not Strobe expert,

but Strobe user• Used Compuware Strobe

at many different sites, for many different reasons

Page 7: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

7

Today’s Cases• Four examples of using Compuware

Strobe to save CPU

• All from CPT case files, three personally done by David Stephens

• Show some of breadth of possibilities of Strobe

• ‘Sampler’ of some ways to use Strobe

Page 8: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

8

COBOL CODECase 1: U.S.-based Financial Services Company

Page 9: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

9

The Target• Batch COBOL/VSAM• Three jobs, one program• Big CPU consumer

Page 10: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

10

Setting Up Strobe for Batch------------------------- Strobe - Add Queued Request ------------------------- Command ===> Jobname ===> JOB1 (Jobname or jobname* for pattern match) Program ===> PROG1 (Program or clear both PROGRAM & STEP to input a list) Step ===> (Name,num,step.procstep or *ALL for all steps) System ===> CW01 (System or clear for a list or *ALL for all systems) Schedule Request ===> N (Y/N; Use Y only when overriding the default) Auto Profile Creation ===> N (Y/N) Measurement Session Information: Session Duration ===> 30 (Estimated time in minutes) Target Sample Size ===> 30000 (Target number of samples) TSO UserID to Notify ===> XCPDXS0 (Notify when session completes) Sample Dataset Information: Dataset Name prefix ===> STROBE UNIT NAME ===> SYSDA VOLUME ===> DISP ===> CATLG (CATLG OR KEEP) Select Additional Parameters: (Y/N; Use Y only when overriding defaults) Data Collectors ===> N Module Mapping Data ===> N Session Management ===> N Request Retention ===> N Other parameters ===> N Save Request in Group ===> N

Number of samples

Duration used by Strobe to determine sampling frequency

Sample to step end default when adding queued request

Page 11: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

11

How Many Samples?• Strobe takes ‘snapshots’

of what is processing on CPU• Sometimes it sees nothing

(job is waiting), sometimes it sees CPU (job is processing on CPU)

• Need enough CPU samples for accurate picture

• At least 1,500 CPU samples (Compuware recommends 10,000)

• Don’t want too many samples to increase CPU usage

Page 12: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

12

How Many Samples?

Measurement Session Information: Session Duration ===> 30 (Estimated time in minutes) Target Sample Size ===> 30000 (Target number of samples)

1,000 samples per minute over

30 minutes

• Estimated duration of job step

• Underestimate to get enough samples (estimated runtime = 40 minutes)

• Set number of samples to figure high enough• Recommend: 1,000 – 1,500 samples per minute• Need more if job duration is less than one minute

Page 13: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

13

• After sampling is complete, Strobe shows number of CPU samples

• Check to ensure sufficient samples• Cannot ‘trust’ Strobe output if there

aren’t enough samples

Strobe Samples----- MEASUREMENT STATISTICS ---- EXEC TIME PERCENT - 85.74WAIT TIME PERCENT - 14.26RUN MARGIN OF ERROR PCT - .23CPU MARGIN OF ERROR PCT - .25TOTAL SAMPLES TAKEN - 274,417TOTAL SAMPLES PROCESSED - 174,416INITIAL SAMPLING RATE- 55.56/SECFINAL SAMPLING RATE - 27.78/SEC

Measurement stats section of profile report shows ‘CPU samples’

Page 14: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

14

iStrobe Output

High CPU at around offset x’15B00’ in module

Page 15: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

15

Relate Module Offset to Code: Compile ListingListing of COBOL source with LIST option to get Assembler

Generated Assembler instructionsPACK, UNPK and CVB: converting between binary and decimal

019373  IF                                                                        015AF4  F272 DCF8 274E          PACK  3320(8,13),1870(3,2)    TS2=16           015AFA  4F40 DCF8               CVB   4,3320(0,13)            TS2=16           015AFE  1A42                    AR    4,2                                      015B00  9540 4559               CLI   1369(4),X'40'           WS-WORK-LINE()   015B04  4770 BA34               BC    7,2612(0,11)            GN=4807(015B36019374  SUBTRACT                                                                  015B08  F212 DCF8 274E          PACK  3320(2,13),1870(3,2)    TS2=16           015B0E  FB10 DCF8 318C          SP    3320(2,13),396(1,3)     TS2=16           015B14  F321 274E DCF8          UNPK  1870(3,2),3320(2,13)    WS-WORK-LEN      015B1A  96F0 2750               OI    1872(2),X'F0'           WS-WORK-LEN+2

Module offset

COBOL statement

Page 16: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

16

Relate Module Offset to Code: iStrobe• Setup to provide

COBOL statement • At client sites,

rarely have ability to use this feature

• Usually use compiler listing

Page 17: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

17

Solution: Change COBOL Picture Definitions• Display definitions burning CPU

converting between binary and EBCDIC• Change definitions to binary

COBOL code: PERFORM UNTIL WS-LEN-FOUND IF WS-WORK-LINE (WS-WORK-LEN:1) = SPACES SUBTRACT 1 FROM WS-WORK-LEN IF WS-WORK-LEN = 0 SET WS-LEN-FOUND TO TRUE END-IF ELSE SET WS-LEN-FOUND TO TRUE END-IF END-PERFORM.

Definitions05 WS-LEN-FOUND-SW PIC 9(01) VALUE 0. 88 WS-NOT-LEN-FOUND VALUE 0. 88 WS-LEN-FOUND VALUE 1. 05 WS-WORK-LEN              PIC 9(03).

Better Definitions05 WS-LEN-FOUND-SW PIC X(01) VALUE 0. 88 WS-NOT-LEN-FOUND VALUE 0. 88 WS-LEN-FOUND VALUE 1. 05 WS-WORK-LEN              PIC 9(03) COMP.

Page 18: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

18

Savings: 65% = 170 MIPS

Page 19: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

19

BATCH VSAMCase 2: Multinational Bank

Page 20: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

20

The Target• Another batch

COBOL/VSAM• Several jobs,

one program• Big CPU consumer

Page 21: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

21

--------------------------- Strobe - Data Collectors -------------------------- Command ===> Override Date Collector Defaults for Jobname: STC1 STROBE will attempt to collect data for all of the licensed Data Collectors. Tailor the collection of data by selecting specific Data Collectors. Collector name followed by a plus sign(+) indicates additional options. Data Collectors: (Y to select or N to deselect specific collectors) ADABAS ===> ADA3GL ===> C ===> CA GEN ===> CICS + ===> COBOL ===> DB2 + ===> IDMS ===> IDMS BATCH DML ===> IMS + ===> MQSERIES + ===> NATURAL ===> PL/I ===> SVC ===> Y VSAM ===> Y Other Data Collectors: Program Name ===> ===> ===> ===>

Strobe Collectors

VSAM collector enabled

• Different collectors (depending on features licensed)• VSAM is normally default if VSAM activity detected

Page 22: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

22

Text-based Profile Reports• In many sites, no iStrobe or no access• Usually use text-based profile reports

$$$$$$$$$$$ $$$$ $$$$ $$$$ $$$$$ $$$$$$$$$$$ $$$$$$$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$ $$$$$ $$$$$$ $$$$ $$$$$ $$$$$$$$$$$$ $$$$ $$$$$$$$$ $$$$$$$$$ $$$$$$$$$$ $$$$$$$$$ $$$$$$$$$ $$$$$$$$$$$$$$ $$$$ $$$$$ $$$$ $$$$$$$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$$ $$$$ $$$$ $$$$ $$$$$ $$$$$$$$ $$$$$$$$ $$$ $$$$$$$$ $$$ $$$ $$$$$$$$ $$$$$$ $$$$ $$ $$$$ $$$$$$$$$ $$$$$$$$ $$$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$ $$$$ $$$$ $$$$$$$ $$$$ $$$$$$$$$$$$ $$$ $$$ $$$ $$$$$$$$$$ $$$$$$$$$ $$$$$$$$$ $$$$ $$$$ $$$$$$ $$$$$$$$$$$$ $$$$$$$$$$$ $$$ $$$ $$$ $$$$$$$ $$$$$$$$ $$$$$$$$$ $$$$ $$$$ $$$$ $$$$$$$$$$$

** MEASUREMENT SESSION DATA **-------- JOB ENVIRONMENT -------- ------- MEASUREMENT PARAMETERS ------ ----- MEASUREMENT STATISTICS ----

PROGRAM MEASURED - PROG001 ESTIMATED SESSION TIME - 30 MIN EXEC TIME PERCENT - 90.84 JOB NAME - JOB001 TARGET SAMPLE SIZE - 30,000 WAIT TIME PERCENT - 9.16 JOB NUMBER - JOB12186 REQUEST NUMBER (Q) - 242 RUN MARGIN OF ERROR PCT - .65 ADDRESS SPACE ID - 0061 CPU MARGIN OF ERROR PCT - .68 STEP NAME - P010.S010 WAIT MARGIN OF ERROR PCT - 2.16

DATE OF SESSION - 09/23/2011 TOTAL SAMPLES TAKEN - 37,549 TIME OF SESSION - 05:08:44 DDFRQSTR - REQLOC,AUTHID TOTAL SAMPLES PROCESSED - 22,548 CONDITION CODE - C-0000 INITIAL SAMPLING RATE- 8.33/SEC FINAL SAMPLING RATE - 4.17/SEC

Page 23: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

23

Problem: VSAM CPU Time• VSAM time is 31% of total—that’s high

-*Strobe (R) IS LICENSED BY COMPUWARE FOR USE BY CPT GLOBAL1Strobe* PERFORMANCE PROFILE GPE637 09/23/2011 PAGE 19- ** PROGRAM SECTION USAGE SUMMARY **-MODULE SECTION 16M SECT FUNCTION % CPU TIME CPU TIME HISTOGRAM MARGIN OF ERROR: .68% NAME NAME <,> SIZE SOLO TOTAL .00 13.50 27.00 40.50 54.00

.SYSTEM .COBLIB COBOL LIBRARY SUBROUTINE 4.32 5.34 .*** .SYSTEM .IAM INNOVATION ACCESS METHOD 4.67 5.93 .***+ .SYSTEM .IOCS DATA MANAGEMENT SERVICES .38 .60 . .SYSTEM .LELIB LE/370 LIBRARY SUBROUTNE .01 .03 . .SYSTEM .PRIVATE PRIVATE AREA .93 1.89 .+ .SYSTEM .SORT SYSTEM SORT/MERGE .00 .01 . .SYSTEM .SVC SUPERVISOR CONTROL .15 .21 . .SYSTEM .VSAM VIRTUAL STORAGE ACC METH 26.01 31.12 .*******************++++ ----- ----- .SYSTEM TOTALS SYSTEM SERVICES 36.48 45.12

CPNEXP > 1056 .41 .84 . GPE637 GPE637 > 49748 42.92 53.92 .*******************************++++++++ SS13X00 > 78752 .00 .02 . SS13X04 > 25080 .00 .03 . SS13X09 > 12440 .00 .02 . SS13X09B > 6952 .02 .04 . ----- ----- PROGRAM GPE637 TOTALS 79.83 100.00

Page 24: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

24

Problem: Strobe VSAM Reports• Strobe shows which VSAM datasets are consuming CPU• GPSYSS, CPPOTS are biggest CPU consumers

-.VSAM IDA019L1 VSAM RECORD MANAGEMENT ---------------------------WAS INVOKED BY--------------------- -----------------VIA----------------------- CPU TIME % XACTION MODULE SECTION RETURN LINE PROCEDURE NAME MODULE SECTION FUNCTION SOLO TOTAL

GPE637 GPE637 003C24 IGZCPCO GPSYSS PARTITION COMMUNICATION 5.85 6.99 GPE637 GPE637 003C24 IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .13 .16 GPE637 GPE637 003CEA IGZCPCO CPBCRD PARTITION COMMUNICATION .03 .03 GPE637 GPE637 003CEA IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .08 .10 GPE637 GPE637 003DB6 IGZCPCO GPCRD PARTITION COMMUNICATION .05 .06 GPE637 GPE637 003DB6 IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .10 .12 GPE637 GPE637 003E74 IGZCPCO GPBSPH PARTITION COMMUNICATION .04 .05 GPE637 GPE637 003E74 IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .05 .08 GPE637 GPE637 004148 IGZCPCO GPECU PARTITION COMMUNICATION .21 .39 GPE637 GPE637 004148 IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .02 .03 GPE637 GPE637 00542A IGZCPCO CPBSYSS PARTITION COMMUNICATION 3.26 3.90 GPE637 GPE637 00542A IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .05 .06 GPE637 GPE637 0056FE IGZCPCO CPBCUS PARTITION COMMUNICATION .02 .06 GPE637 GPE637 0056FE IGZCPCO IGZEVIO VSAM INPUT/OUTPUT .03 .08 GPE637 GPE637 006894 IGZCPCO CPPOTS PARTITION COMMUNICATION 11.30 13.37 GPE637 GPE637 006894 IGZCPCO IGZEVIO VSAM INPUT/OUTPUT 2.06 2.34 GPE637 GPE637 006936 IGZCPCO CPPOTS PARTITION COMMUNICATION 1.89 2.34 ----- ----- 25.19 30.17

Where file was read in program

Page 25: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

25

Problem: Strobe VSAM Reports• Strobe provides more information about VSAM

GPSYSS VSAM KSDS PCCS.IN.M980.GPBSYS INPUT,DYN FILE: RECFM........ SMS: DATA CLASS........EXTVSM VSAM: FREESPACE... 512K USER RECORDS... 296 EXTENTS...... 2 MANAGEMENT CLASS..NOMGMT SHROPTS....(2,3) LOGICAL OPERATIONS: STORAGE CLASS.....STNDRD CI/CA...... 90 DELETES........ 0 DIR MSR/BIAS.....000/NONE %CI FREE..... 0 UPDATES........ 0 SEQ MSR/BIAS.....000/NONE %CA FREE..... 0 RETRIEVES...... 6,404,846 EXTNDED FMT..EA(XRBA) INSERTS........ 0

CPPOTS VSAM KSDS PCCS.IN.I169010.CPPOT INPUT,SEQ FILE: RECFM........ SMS: DATA CLASS........STNDRD VSAM: FREESPACE... 0 USER RECORDS... 2,009 EXTENTS...... 1 MANAGEMENT CLASS..NOMGMT SHROPTS....(2,3) LOGICAL OPERATIONS: STORAGE CLASS.....STNDRD CI/CA...... 6 DELETES........ 0 DIR MSR/BIAS.....000/NONE %CI FREE..... 10 UPDATES........ 0 SEQ MSR/BIAS.....000/NONE %CA FREE..... 10 RETRIEVES...... 53,158,001 INSERTS........ 0

Open for Input

Reads only (lots of them)

Very few records in dataset

Page 26: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

26

Problem: Strobe VSAM Reports• Strobe provides information about execution• Using LSR, no EXCPs (not buffering problem)

*Strobe (R) IS LICENSED BY COMPUWARE FOR USE BY CPT GLOBAL1Strobe* PERFORMANCE PROFILE GPE637 09/23/2011 PAGE 5- ** DATA SET CHARACTERISTICS **-DDNAME ACCESS POOL REC BLK/CI HBUF BUF RPL -SPLITS- EXCP DATA SET NAME METHOD NO SIZE SIZE NO NO STRNO CI CA COUNTS CPBSYSS VSAM KSDS LSR015 8011 16384 10 16 PCCS.IN.M201.CPBSYS CPBSYSS VSAM INDX LSR015 505 512 10 PCCS.IN.M201.CPBSYS CPPOTS VSAM KSDS LSR013 510 8192 10 16 102 PCCS.IN.I169010.CPPOT CPPOTS VSAM INDX LSR013 505 512 10 17 PCCS.IN.I169010.CPPOT

Only 10 buffers (seems low)

But no EXCPs

Page 27: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

27

iStrobe Comprehensive Report

Page 28: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

28

Solution: Eliminate VSAM Calls• Could load VSAM dataset into memory

(particularly files with sequential access)

• Program already had logic to limit VSAM calls

• Updates needed to work more efficiently

Page 29: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

29

Savings: 20% = 10-50 MIPS

Page 30: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

30

VENDOR PRODUCTCase 3: U.S.-based Financial Services Company

Page 31: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

31

The Target

(CPU usage from SMF Type 30 Interval Records)

• Also use Strobe with vendor products• IBM Connect:Direct Regions

Page 32: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

32

Setting Up Strobe for Started Tasks------------------------- Strobe - Add Active Request ------------------------- Command ===> Jobname ===> STC1 (Jobname or clear to list active Jobs/Processes) Enter J for Jobs, P for UNIX Processes ===> System ===> CW01 (System or clear to list available systems) Schedule Request ===> N (Y/N; Use Y only when overriding the default) Auto Profile Creation ===> N (Y/N) Measurement Session Information: Session Duration ===> 30 (Estimated time in minutes) Target Sample Size ===> 30000 (Target number of samples) TSO UserID to Notify ===> XCPDXS0 (Notify when session completes) Sample Dataset Information: Dataset Name Prefix ===> STROBE UNIT NAME ===> SYSDA VOLUME ===> DISP ===> CATLG (CATLG OR KEEP) Select Additional Parameters: (Y/N; Use Y only when overriding defaults) Data Collectors ===> Y Module Mapping Data ===> N Session Management ===> N Request Retention ===> N Other Parameters ===> N Save Request in Group ===> N

Number of samples (same as for batch)

Recommend sampling for 15-30 minutes

Add Active default is to stop at number of samples

Check data collectors

Page 33: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

33

Strobe Collectors• Recommend enabling SVC Data Collector• Shows more detail on SVCs—

can help identify system-related CPU usage--------------------------- Strobe - Data Collectors -------------------------- Command ===> Override Date Collector Defaults for Jobname: STC1 STROBE will attempt to collect data for all of the licensed Data Collectors. Tailor the collection of data by selecting specific Data Collectors. Collector name followed by a plus sign(+) indicates additional options. Data Collectors: (Y to select or N to deselect specific collectors) ADABAS ===> ADA3GL ===> C ===> CA GEN ===> CICS + ===> COBOL ===> DB2 + ===> IDMS ===> IDMS BATCH DML ===> IMS + ===> MQSERIES + ===> NATURAL ===> PL/I ===> SVC ===> Y VSAM ===> Other Data Collectors: Program Name ===> ===> ===> ===>

Enable SVC data collector

Page 34: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

34

High CPU Usage in Program Manager/Link• Program Manager/Link = 16% of total CPU• Connect:Direct loading program over and over again

0*Strobe (R) IS LICENSED BY COMPUWARE FOR USE BY CPT GLOBAL1Strobe* PERFORMANCE PROFILE DMINIT 11/19/2015 PAGE 72- #IEP ** MOST INTENSIVELY EXECUTED PROCEDURES **-MODULE SECTION LINE PROCEDURE/FUNCTION STARTING PROCEDURE CPU TIME PERCENT CUMULATIVE PERCENT NAME NAME NUMBER NAME LOCATION LENGTH SOLO TOTAL SOLO TOTAL

.VSAM IDA019L1 VSAM RECORD MANAGEMENT 1.50 24.66 1.50 24.66 .SVC SVC 006 PROGRAM MANAGER/LINK .74 15.97 2.24 40.63 XIT00001 XIT00001 000060 2 .27 6.43 2.51 47.06 XITAA002 XITAA002 000058 2 .39 4.99 2.90 52.04 DGADFIT DMFIT 005358 2 .42 3.78 3.32 55.82 DGADFIT DMFIT 005344 2 .43 3.62 3.75 59.44 DGADFIT DMFIT 0053DA 2 .32 2.66 4.07 62.10 DGADFIT DMFIT 0052DA 2 .22 2.03 4.29 64.14 .SVC SVC 099 DYNAMIC ALLOCATION .16 1.92 4.44 66.05 DGADFIT DMFIT 00542A 2 .26 1.77 4.70 67.83

Page 35: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

35

More SVC Detail• SVC Collector identifies module that called SVC• Look at modules XIT00001 and XITAA002—user exits• Statistics exit XIT00001 LINKs to XITAA002,

which LINKs to another program-.SVC SVC 006 PROGRAM MANAGER/LINK ---------------------------WAS INVOKED BY--------------------- -----------------VIA----------------------- CPU TIME % XACTION MODULE SECTION LOCATION LINE SOURCE TEXT MODULE SECTION DESCRIPTION SOLO TOTAL

DGADDYNL 0047B0 .00 .03 XIT00001 XIT00001 000058 .26 4.52 XITAA002 XITAA002 000060 .18 8.90 ----- ----- .44 13.45

Page 36: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

36

Solution: Eliminate Program Loads• Compuware dataset statistics show library where

programs are loaded from (PROD1.NDM.LVL1.LINKLIB)• Could add dataset to linklib, add modules to LPA,

merge modules *Strobe (R) IS LICENSED BY COMPUWARE FOR USE BY CPT GLOBAL1Strobe* PERFORMANCE PROFILE DMINIT 11/19/2015 PAGE 11- #DSC ** DATA SET CHARACTERISTICS **-DDNAME ACCESS POOL REC BLK/CI HBUF BUF RPL -SPLITS- EXCP DATA SET NAME METHOD NO SIZE SIZE NO NO STRNO CI CA COUNTS STEPLIB BPAM 32760 1069916 PROD1.NDM.LVL1.LINKLIB STEPLIB 6144 PROD1.NDM.USERLIB

Page 37: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

37

Savings: 15% = 10-150 MIPS

Page 38: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

38

CICSCase 4: Multinational Bank

Page 39: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

39

The Target

CICS Regions

Page 40: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

40

--------------------------- Strobe - Data Collectors -------------------------- Command ===> Override Date Collector Defaults for Jobname: STC1 STROBE will attempt to collect data for all of the licensed Data Collectors. Tailor the collection of data by selecting specific Data Collectors. Collector name followed by a plus sign(+) indicates additional options. Data Collectors: (Y to select or N to deselect specific collectors) ADABAS ===> ADA3GL ===> C ===> CA GEN ===> CICS + ===> Y COBOL ===> Y DB2 + ===> Y IDMS ===> IDMS BATCH DML ===> IMS + ===> MQSERIES + ===> NATURAL ===> PL/I ===> SVC ===> Y VSAM ===> Y Other Data Collectors: Program Name ===> ===> ===> ===>

Strobe Collectors

CICS collector enabled

• For CICS, recommend enabling CICS data collectors, DB2 (if CICS/DB2 region) and other relevant collectors

Page 41: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

41

-------------- Strobe - CICS Data Collector Options --------------Command ===> Collect Region Data ===> (Y/N) OR Produce Performance Supplement ===> Y (Y/N) Collect Terminal Activity ===> (Y/N) Detail if NOT Performance Supplement or Terminal Activity Detail by Transaction (TRAN or TR*): => => => => => OR Detail by Terminal (TERM or TE*): => => => => => OR Detail by User (USER or US*): => => => => =>

Strobe Collectors

Select performance supplement

• Selecting CICS collector produces another panel with more options• Performance supplement to get CPU by CICS transaction

Page 42: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

42

High CPU Usage in Language Environment• Most users look at individual CICS transactions• Looking at overall CICS region can be interesting• In this region, LE CPU usage is 3.5% of entire region CPU

#PSU ** PROGRAM SECTION USAGE SUMMARY ** MODULE SECTION 16M FUNCTION % CPU TIME MARGIN OF ERROR 1.26% NAME NAME <,> SOLO TOTAL .00 18.00 36.00 .SYSTEM .CICS CICS SYSTEM SERVICES 20.77 35.42 .************++++++++ .SYSTEM .COBLIB COBOL LIBRARY SUBROUTI .17 .30 . .SYSTEM .COMMON COMMON AREA 1.03 1.79 .* .SYSTEM .COMSERV COMMUNICATION SERVER .00 .03 . .SYSTEM .DB2 DB2 SYSTEM SERVICES 6.26 10.87 .***+++ .SYSTEM .IRLM RESOURCE LOCK MANAGER .07 .10 . .SYSTEM .LELIB LE/370 LIBRARY SUBROUT 2.24 3.55 .*+ .SYSTEM .MEDIAMG MEDIA MANAGER MODULES .00 .03 . .SYSTEM .MQSRIES 1.46 2.21 .* .SYSTEM .NUCLEUS MVS NUCLEUS 3.27 5.57 .**+ .SYSTEM .PRIVATE PRIVATE AREA .10 .28 . .SYSTEM .SCLOG .58 .83 . .SYSTEM .SMS SYSTEM MANAGER STORAGE .02 .05 . .SYSTEM .SUPERVS SUPERVISOR SERVICES .51 .90 .

Page 43: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

43

High CPU Usage in Language Environment

• Strobe provides more detail• Lots of Get Heap CPU

.SYSTEM SYSTEM SERVICES .LELIB LE/370 LIBRARY SUBROUTNE MODULE SECTION FUNCTION % CPU TIME MARGIN OF ERROR 1.26% NAME NAME SOLO TOTAL .00 2.00 4.00 #PUP ** PROGRAM USAGE BY PROCEDURE ** MODULE SECTION FUNCTION % CPU TIME MARGIN OF ERROR 1.26% NAME NAME SOLO TOTAL .00 2.00 4.00 CEECCICS LE/370-CICS ROUTINES .27 .43 .*+ CEEEV005 COBOL INIT/TERM .05 .10 . CEEPLPKA CEEBADDM ADD MEMBERS TO ENCLAVE .02 .02 . CEEPLPKA CEECREIN CICS RUN-UNIT END INVOC .03 .07 . CEEPLPKA CEECRINI CICS RUN-UNIT INITIALZT .05 .08 . CEEPLPKA CEEPLOD2 THREAD LEVEL LOAD SERVC .02 .02 . CEEPLPKA CEEV#GTS GET HEAP STORAGE 1.33 2.04 .*******+++ CEEPLPKA CEEVGTIH GET INITIAL HEAP STG .02 .02 . CEEPLPKA CEEVGTIS GET INIT STACK SEGMENT .03 .07 . CEEPLPKA CEEVGTST ALLOCATE HEAP STORAGE .03 .07 . CEEPLPKA CEEVGTUN NEXT AVAIL BYTE LOCATER .02 .02 . CEEPLPKA CEEZCREN CREATE ENCLAVE .17 .25 .* CEEPLPKA CEEZCRTH CREATE THREAD .12 .17 .* CEEPLPKA CEEZDSEX DESTROY EXECUTION RESRC .00 .03 . CEEPLPKA CEEZDSTH DESTROY THREAD .03 .07 . CEEPLPKA CEEZIDT DEBUGGER INITIALIZATION .00 .02 . CEEPLPKA CEEZINV INVOCATION INIT FUNCTNS .07 .10 . ------ ------ .LELIB TOTALS 2.24 3.55

Page 44: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

44

Solution: LE Parameters• Tune LE Storage Parameters—Sizes

(Used LE RPTSTG to determine better values)

ANYHEAP=(4K,4080,ANYWHERE,FREE)HEAP=(4K,4080,ANYWHERE,FREE,4K,4080)STACK=(4K,4080,ANYWHERE,FREE,4K,4080)

• Tune LE Storage Parameters—Initialization(LE initializing storage before and after UOW; often no requirement to initialize after)

STORAGE=(00,NONE,00,0K)

ANYHEAP=(8K,4080,ANYWHERE,FREE)

HEAP=(64K,131056,ANYWHERE,FREE,4K,4080)

STACK=(8K,8176,ANYWHERE,FREE,4K,4080)

STORAGE=(00,NONE,NONE,0K)

Page 45: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

45

LE Options in iStrobeLE Options can be easily found in iStrobe

Page 46: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

46

Savings Estimates• Using Strobe to estimate savings

– LE Overhead = 3.5%– Projected Savings: 2%– MIPS Saved: 15-100 MIPS

#PSU ** PROGRAM SECTION USAGE SUMMARY ** MODULE SECTION 16M FUNCTION % CPU TIME NAME NAME <,> SOLO TOTAL.SYSTEM .LELIB LE/370 LIBRARY SUBROUT 2.24 3.55 .*+

Page 47: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

47

ROUNDUP

Page 48: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

48

Summary• Four Real-life cases from CPT Global• Case 1: COBOL Picture Definitions

(iStrobe, Strobe setup)

• Case 2: VSAM (Text Profile, VSAM information)

• Case 3: Program Product (Strobe collectors, Strobing started tasks/vendor products)

• Case 4: CICS Options (Don’t just look at CICS transactions, estimating CPU saves)

Page 49: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

49

Not CoveredOnly looked at small part of Strobe capabilities• CICS Transactions• IMS/DLI• ADABAS• DB2• Wait/Service Times

Page 50: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

50

About CPT GlobalCPT Global is the international leader in delivering cost optimization and business assurance services.

TESTINGOur consultants are your expert and independent partner across the testing lifecycle.

PERFORMANCE TUNINGOur global experts can optimize and tune applications and infrastructure to find you savings.

CAPACITY MANAGEMENTOur capacity planners will find your optimum capacity at the right rime and at the right cost.

DELIVERY ASSURANCEOur management consultants support business leaders through complex IT decision making.

Find us online

cptglobal.com

Email [email protected]

LinkedInFollow our page

Contact David at: [email protected]

Page 51: Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT Global

51

Enabling Digital Business Success