Upload
compuware
View
263
Download
8
Embed Size (px)
Citation preview
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
2
ShareIf you like what you see in this presentation, share it with your social networks!
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
4
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
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
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
8
COBOL CODECase 1: U.S.-based Financial Services Company
9
The Target• Batch COBOL/VSAM• Three jobs, one program• Big CPU consumer
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
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
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
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’
14
iStrobe Output
High CPU at around offset x’15B00’ in module
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
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
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.
18
Savings: 65% = 170 MIPS
19
BATCH VSAMCase 2: Multinational Bank
20
The Target• Another batch
COBOL/VSAM• Several jobs,
one program• Big CPU consumer
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
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
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
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
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
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
27
iStrobe Comprehensive Report
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
29
Savings: 20% = 10-50 MIPS
30
VENDOR PRODUCTCase 3: U.S.-based Financial Services Company
31
The Target
(CPU usage from SMF Type 30 Interval Records)
• Also use Strobe with vendor products• IBM Connect:Direct Regions
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
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
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
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
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
37
Savings: 15% = 10-150 MIPS
38
CICSCase 4: Multinational Bank
39
The Target
CICS Regions
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
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
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 .
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
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)
45
LE Options in iStrobeLE Options can be easily found in iStrobe
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 .*+
47
ROUNDUP
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)
49
Not CoveredOnly looked at small part of Strobe capabilities• CICS Transactions• IMS/DLI• ADABAS• DB2• Wait/Service Times
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]
51
Enabling Digital Business Success