SMF type 30 (subtype 4) records contain useful
information on the resource consumption of a particular job step. These include
CPU time (total, and broken down by field), elapsed time, EXCPs (total, and
broken down by device), and device connect time.
These SMF records provide a wealth of performance data,
which is often difficult to analyse in its raw form. You need to convert this
raw data into processed data that can be used for trend analysis and management
reports. If you do not have access to a performance analysis and reporting
product, you can use the DFSORT editing functions in combination with the
reporting capabilities of ICETOOL or OUTFIL to generate performance data reports.
The INCLUDE/OMIT, OUTFIL, and INREC/OUTREC control statements are helpful in
selecting the specific fields of the particular SMF, RMF, or other data records
to be analysed. ICETOOL or OUTFIL can then be used to generate printable
reports from the resulting raw data. See z/OS DFSORT Application Programming
Guide (SC26- 7523-00) for more information about ICETOOL, OUTFIL, and editing
functions.
ICETOOL was used to select and display SMF type 30 (subtype 4) records below.
Run this job-1 to determine what offsets to use for the next job:
//* FIND OUT WHAT SMF RECORD 30/4 OFFSETS
//* TO USE FOR THE NEXT JOB.
//* IDENTIFICATION SECTION (SMF30IOF)
//* I/O ACTIVITY SECTION (SMF30UOF)
//* PROCESSOR SECTION (SMF30COF)
//* STORAGE SECTION (SMF30COF)
//* PERFORMANCE SECTION (SMF30POF)
//*------------------------------------------
//TOOL1 EXEC PGM=ICETOOL
//DFSMSG DD SYSOUT=*
//RAWSMF DD DSN=your.smf.weekly.ds,DISP=SHR
//SMFOFF DD DSN=&&SMFOFF,DISP=(,PASS),
// SPACE=(CYL,(50,25)),UNIT=SYSDA,
// DCB=(RECFM=VB,LRECL=32756,BLKSIZE=0)
//SRT1CNTL DD *
OPTION DYNALLOC,VLSHRT,STOPAFT=10,SPANINC=RC4
INCLUDE COND=(6,1,BI,EQ,X'1E',AND,23,2,BI,EQ,X'0004')
SORT FIELDS=(7,4,FI,A)
/*
//TOOLMSG DD SYSOUT=*
//REPORT DD SYSOUT=*
//TOOLIN DD *
SORT FROM(RAWSMF) TO(SMFOFF) USING(SRT1)
DISPLAY FROM(SMFOFF) LIST(REPORT) -
TITLE('SMF RECORD 30/4 OFFSETS DISPLAY') -
PAGE DATE TIME BLANK -
* USE VALUES DISPLAYED FOR A, B, C, D, E IN THE NEXT ICETOOL JOB
HEADER('ID. SEC. (A)') ON(33,4,FI) -
HEADER('I/O SEC.(B)') ON(41,4,FI) -
HEADER('PROC SEC.(C)') ON(57,4,FI) -
HEADER('STORAGE SEC.(D)') ON(73,4,FI) -
HEADER('PERF. SEC. (E)') ON(81,4,FI)
/*
//*
ID. SEC. (A) I/O SEC.(B) PROC SEC.(C) STORAGE SEC.(D) PERF. SEC. (E)
------------ ----------- ------------ --------------- --------------
257 507 591 807 1063
//* Extract type 30 smf records from a dumped smf dataset
//*-----------------------------------------------------------------
//TOOL2 EXEC PGM=ICETOOL,REGION=0M
//DFSMSG DD SYSOUT=*
//RAWSMF DD DSN=your.smf.weekly.ds,DISP=SHR
//SMFEXTR DD DSN=&&ASID3Ø,DISP=(,PASS),
// SPACE=(CYL,(50,50)),UNIT=SYSALLDA
//COPYOUT DD DSN=&&ASID,DISP=(,PASS),
// SPACE=(TRK,(30,30)),UNIT=SYSALLDA
//DFSPARM DD *
OPTION SMF=FULL
//SRT1CNTL DD *
OPTION DYNALLOC,VLSHRT,SPANINC=RC4
*Only these records that comply to:
*SMF 30, sub type 4, id offset = 257, excp > 0
INCLUDE COND=(6,1,BI,EQ,X'1E',AND,23,2,BI,EQ,X'0004',AND,
33,4,BI,EQ,X'00000101',AND, id offset = 257
512,4,BI,GT,X'00000000') excp > 0
SORT FIELDS=(11,4,PD,A,7,4,BI,A)
/*
//SRT2CNTL DD *
OPTION COPY,VLSHRT
* Run previous icetool job (OFFSET30) to get values for a, b, c, d, e
* and substitute with the appropriate values
* SMF30LEN (RDW) 0+1=1 start of record
* SMF30TME (TIME) 6+1=7 start of record
* SMF30DTE SMF record write date: 10+1
*
* Identification Section offset (a): 257 + 1 = 258
* off len
* 0+258: 258,8 SMF30JBN - Job or session name.
* 8+258: 266,8 SMF30PGM - Program name
* 32+258: 290,8 SMF30JNM - JES job identifier.
*
* I/O Activity Section offset (b): 507 + 1 = 508
* 4+508: 512,4 SMF30TEP - EXCP count
* 18+508: 526,4 SMF30TCN - Total device connect time for this ASID.
* 32+508: 540,4 SMF30AIC - DASD I/O connect time
* 36+508: 544,4 SMF30AID - DASD I/O disconnect time
* 40+508: 548,4 SMF30AIW - DASD I/O pending + control unit queue time
*
* Processor Accounting Section offset (c): 591 + 1 = 592
* 4+592: 596,4 SMF30CPT - CPU time under the TCB
* 8+592: 600,4 SMF30CPS - CPU time under the SRB
* 44+592: 636,4 SMF30IIP - CPU time used to process I/O interrupts
* 48+592: 640,4 SMF30RCT - CPU time used by the region control task
* 52+592: 644,4 SMF30HPT - CPU time used to transfer data:HSP <-> ASID
*
* Storage and Paging Section offset (d): 807 + 1 = 808
* 4+808: 812,2 SMF30PRV - Largest stg used from bottom of priv.
* 6+808: 814,2 SMF30SYS - Largest stg used from top of priv.
* 8+808: 816,4 SMF30PGI - Paged in from AUX.
* 12+808: 820,4 SMF30PGO - Paged out to AUX
* 20+808: 828,4 SMF30NSW - # of ASID swap sequences.
* 24+808: 832,4 SMF30PSI - # of pages swapped in from AUX storage to CS.
* 28+808: 836,4 SMF30PSO - # of pages swapped out from CS to AUX.
* 32+808: 840,4 SMF30VPI - # of VIO page-ins from AUX to CS.
* 36+808: 844,4 SMF30VPO - # of VIO page-outs from CS to AUX.
* 44+808: 852,4 SMF30CPI - # of Comm area page-ins from AUX to CS.
* 48+808: 856,4 SMF30HPI - # of HSP page-ins from AUX to PROC stg.
* 52+808: 860,4 SMF30LPI - # of LPA page-ins from AUX to CS.
* 56+808: 864,4 SMF30HPO - # of HSP page-outs from PROC stg. to AUX.
* 72+808: 880,4 SMF30RGB - Private size in bytes (< 16 megabytes).
* 76+808: 884,4 SMF30ERG - Private size in bytes (> 16 megabytes).
* 80+808: 888,4 SMF30ARB - Maxvirt alloc from LSQA and the
* SWA subpools (<16M)
* 84+808: 892,4 SMF30EAR - Maxvirt alloc from LSQA and the
* SWA subpools (>16M)
* 88+808: 896,4 SMF30URB - Maxvirt alloc from the user
* subpools (< 16 M B)
* 92+808: 900,4 SMF30EUR - Maxvirt alloc from the user
* subpools (> 16 M B)
* 96+808: 904,4 SMF30RGN - Region size established
*100+808: 908,4 SMF30DSV - Amount of dsp and hsp VS used
*
* Performance Section offset (e): 1063 + 1 = 1064
* 0+1064:1064,4 SMF30SRV - Total service units.
* 4+1064:1068,4 SMF30CSU - CPU service units.
* 8+1064:1072,4 SMF30SRB - Service request block (SRB) service units.
* 12+1064:1076,4 SMF30IO - I/O service units.
* 16+1064:1080,4 SMF30MSO - Main storage occupancy (MSO) service units.
*
OUTREC FIELDS=(1,4, SMF30LEN
7,4, SMF30TME
11,4, SMF30DTE
258,8, SMF30JBN
266,8, SMF30PGM
290,8, SMF30JNM
512,4, SMF30TEP
526,4, SMF30TCN
540,4, SMF30AIC
544,4, SMF30AID
548,4, SMF30AIW
596,4, SMF30CPT
600,4, SMF30CPS
636,4, SMF30IIP
640,4, SMF30RCT
644,4, SMF30HPT
812,2, SMF30PRV
814,2, SMF30SYS
816,4, SMF30PGI
820,4, SMF30PGO
828,4, SMF30NSW
832,4, SMF30PSI
836,4, SMF30PSO
840,4, SMF30VPI
844,4, SMF30VPO
852,4, SMF30CPI
856,4, SMF30HPI
860,4, SMF30LPI
864,4, SMF30HPO
880,4, SMF30RGB
884,4, SMF30ERG
888,4, SMF30ARB
892,4, SMF30EAR
896,4, SMF30URB
900,4, SMF30EUR
904,4, SMF30RGN
908,4, SMF30DSV
1064,4, SMF30SRV
1068,4, SMF30CSU
1072,4, SMF30SRB
1076,4, SMF30IO
1080,4) SMF30MSO
*
//TOOLMSG DD SYSOUT=*
//SERVICE DD SYSOUT=* <-- Service performance data
//CPURPT DD SYSOUT=* <-- CPU performance data
//SUMMARY DD SYSOUT=* <-- Summary report
//STORAGE DD SYSOUT=* <-- Storage report
//DASD DD SYSOUT=* <-- I/O report
//PAGE DD SYSOUT=* <-- Paging report
//SWAP DD SYSOUT=* <-- Swap report
//HSP DD SYSOUT=* <-- Hiperspace report
//TOOLIN DD *
SORT FROM(RAWSMF) TO(SMFEXTR) USING(SRT1)
COPY FROM(SMFEXTR) TO(COPYOUT) USING(SRT2)
TITLE('Storage report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Region - kb ') ON(149,4,FI) -
HEADER('Dsp Hsp mb') ON(153,4,FI) -
HEADER('Bott stg KB') ON(77,2,FI) -
HEADER('Top stg KB') ON(79,2,FI) -
HEADER('p < 16 kb') ON(125,4,FI,/KB) -
HEADER('p > 16 kb') ON(129,4,FI,/KB) -
HEADER('VS< 16 kb') ON(133,4,FI,/KB) -
HEADER('VS> 16 kb') ON(137,4,FI,/KB) -
HEADER('Max VS<16 mb') ON(141,4,FI,/KB) -
HEADER('Max VS>16 mb') ON(145,4,FI,/KB)
TITLE('Paging report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Page in') ON(81,4,FI) -
HEADER('Page out') ON(85,4,FI) -
HEADER('VIO page in') ON(101,4,FI) -
HEADER('VIO page out') ON(105,4,FI) -
HEADER('Comm page in') ON(109,4,FI) -
HEADER('LPA page in') ON(117,4,FI) -
HEADER('HSP page in') ON(113,4,FI) -
HEADER('HSP page out') ON(121,4,FI)
TITLE('Swap report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Swap seq.') ON(89,4,FI) -
HEADER('Swap in') ON(93,4,FI) -
HEADER('Swap out') ON(97,4,FI)
TITLE('I/O report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Excp') ON(37,4,FI) -
HEADER('Tot.conn') ON(41,4,FI) -
HEADER('Dasd conn') ON(45,4,FI) -
HEADER('Dasd disconn') ON(49,4,FI) -
HEADER('Dasd pend.') ON(53,4,FI)
TITLE('CPU performance data') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Excp') ON(37,4,FI) -
HEADER('tcb') ON(57,4,FI,F1) -
HEADER('srb') ON(61,4,FI,F1) -
HEADER('iip') ON(65,4,FI,F1) -
HEADER('rct') ON(69,4,FI,F1) -
HEADER('hpt') ON(73,4,FI,F1)
TITLE('Service performance data') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Total su') ON(157,4,FI) -
HEADER('Tcb su') ON(161,4,FI) -
HEADER('Srb su') ON(165,4,FI) -
HEADER('Io su') ON(169,4,FI) -
HEADER('MSO su') ON(173,4,FI)
TITLE('Summary report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Excp') ON(37,4,FI) -
HEADER('Conn.') ON(41,4,FI) -
HEADER('tcb') ON(57,4,FI,F1) -
HEADER('srb') ON(61,4,FI,F1) -
HEADER('Serv') ON(157,4,FI) -
HEADER('Region - kb ') ON(149,4,FI) -
HEADER('Dsp Hsp mb') ON(153,4,FI)
TITLE('Hiperspace report') -
PAGE DATE TIME BLANK -
HEADER('Date') ON(09,4,DT1,E'9999/99/99') -
HEADER('Time') ON(05,4,TM1,E'99:99:99') -
HEADER('Jes2 #') ON(29,8,CH) -
HEADER('Job') ON(13,8,CH) -
HEADER('Pgm') ON(21,8,CH) -
HEADER('Dsp Hsp mb') ON(153,4,FI) -
HEADER('hpt') ON(73,4,FI,F1) -
HEADER('HSP page in') ON(113,4,FI) -
HEADER('HSP page out') ON(121,4,FI)
/*
The above job can be run to get job level information by simply changing the subtype
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.