49
Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc.

Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Embed Size (px)

Citation preview

Page 1: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Using SAS/Graph on z/OS to Display Performance and Capacity Data

Richard S. Ralston

Humana, Inc.

Page 2: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

What You Need

SAS Base SAS Graph IBM HTTP Server Patience Patricia Wingfield’s CMG2003 paper: No

More Downloading Online Resources: SAS – Michael Hines,

Richard S. Ralston - http://www.cmg.org/measureit/issues/mit35/m_35_11.html

Page 3: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

HFS/ZFS vs. PDSE

PDSE Like other systems the last qualifier identifies type of

contents .HTML, .GIF, .JPG Allocated in JCL or SAS statements Sharable across LPARs

HFS Preallocated Directory structure May not be able to share HFS across LPARs

Security and sharing issues ZFS

Same concerns as HFS

Page 4: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Allocating PDSE Files%MACRO dsalloc (prefix=,timepd=,disp=); %GLOBAL htmlds gifds; DATA _NULL_; LENGTH dsname $44; %IF &timepd='D' | &timepd=D | &timepd=d %THEN %DO; date=_rptdate; dsname="&prefix" || '.D' || PUT(date,JULIAN5.) || '.HTML'; CALL SYMPUT("htmlds",TRIM(dsname)); dsname="&prefix" || '.D' || PUT(date,JULIAN5.) || '.GIF'; CALL SYMPUT("gifds",TRIM(dsname)); %END; %IF &timepd='M' | &timepd=M | &timepd=m %THEN %DO; date=_rptmth; dsname="&prefix" || '.M' || PUT(date,yymmdd4.) || '.HTML'; CALL SYMPUT("htmlds",TRIM(dsname)); dsname="&prefix" || '.M' || PUT(date,yymmdd4.) || '.GIF'; CALL SYMPUT("gifds",TRIM(dsname)); %END; %IF &timepd='MTD' | &timepd=MTD | &timepd=mtd %THEN %DO; date=_rptmth; dsname="&prefix" || '.MTD' || '.HTML'; CALL SYMPUT("htmlds",TRIM(dsname)); dsname="&prefix" || '.MTD' || '.GIF'; CALL SYMPUT("gifds",TRIM(dsname)); %END; %IF &timepd='N' | &timepd=N | &timepd=n %THEN %DO; dsname="&prefix" || '.HTML'; CALL SYMPUT("htmlds",TRIM(dsname)); dsname="&prefix" || '.GIF'; CALL SYMPUT("gifds",TRIM(dsname)); %END;

%IF &timepd='W' | &timepd=W | &timepd=w %THEN %DO;

IF WEEKDAY(_rptdate) = 7 THEN date=rptdate-6

ELSE date=_rptdate-WEEKDAY(_rptdate)-6;

dsname="&prefix" || '.W' || PUT(date,YYMMDD6.) || '.HTML';

CALL SYMPUT("htmlds",TRIM(dsname));

dsname="&prefix" || '.W' || PUT(date,YYMMDD6.) || '.GIF';

CALL SYMPUT("gifds",TRIM(dsname));

%END;

RUN;

%IF &disp='NEW' | &disp=NEW | &disp=new %THEN %DO;

%delds;

FILENAME sasrpt "'&htmlds'"

DSNTYPE=LIBRARY DSORG=PO

RECFM=VB LRECL=512 BLKSIZE=0

SPACE=(CYL,(1,1,15))

DISP=(NEW,CATLG,DELETE);

FILENAME sasgif "'&gifds'"

DSNTYPE=LIBRARY DSORG=PO

RECFM=VB LRECL=512 BLKSIZE=0

SPACE=(CYL,(1,1,15))

DISP=(NEW,CATLG,DELETE);

%END;

%ELSE %DO;

FILENAME sasrpt "'&htmlds'" DISP=OLD WAIT=60;

FILENAME sasgif "'&gifds'" DISP=OLD WAIT=60;

%END;

%MEND dsalloc;

Page 5: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Deleting PDSE Datasets

%MACRO delds;

%* Delete HTML and GIF Dataset libraries if they exist from prior run.;

%IF %SYSFUNC(FILEEXIST(&htmlds)) %THEN %DO;

FILENAME sasrpt "&htmlds" DISP=(OLD,DELETE) WAIT=60;

FILENAME sasrpt CLEAR;

%end;

%IF %SYSFUNC(FILEEXIST(&gifds)) %THEN %DO;

FILENAME sasgif "&gifds" DISP=(OLD,DELETE) WAIT=60;

FILENAME sasgif CLEAR;

%END;

%MEND delds;

Page 6: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

ODS (Output Delivery System)

Provides enhanced formatting capability for SAS output

Part of SAS base Version 7 and earlier was all printer oriented Started in SAS version 8 Build Web output (HTML, Java, etc.)

Page 7: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Setting Up ODS for PDSE & GIF%MACRO odshtml (report=,graph=,label=,title=HTML);

ODS HTML BODY="&report" (URL="'&htmlds(&report)'")

CONTENTS="&report.C" (URL="'&htmlds(&report.C)'")

FRAME="&report.F" (URL="'&htmlds(&report.F)'"

TITLE="&label")

PATH=sasrpt

%IF &graph=YES | &graph=Y | &graph=y | &graph=yes %THEN

GPATH=sasgif (URL="'&gifds(&report)'");

ANCHOR='ANCHOR'

RECORD_SEPERATOR=NONE

%LET title=%UPCASE(&title);

%IF &title=GRAPH %THEN

GTITLE;

%ELSE

NOGTITLE;

STYLE=styles.test;

ODS LISTING CLOSE;

ODS PROCLABEL "<b>&label</b>";

%MEND odshtml;

Page 8: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Style Templates

Define the style (look) of the output Handful of predefined Styles Not well documented PROC TEMPLATE used to create/modify styles http://support.sas.com/rnd/base/topics/templateFAQ/

Template.html Output Delivery System: The Basics, Lauren E.

Haworth, SAS Publishing, 2001 Instant ODS: Style Templates for the SAS Output

Delivery System, Bernadette Johnson, SAS Publishing, 2003

Web Development with SAS by Example, Frederick E. Pratter, SAS Publishing, 2003

Page 9: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Graphics Options%MACRO gopts (x=1000,y=620); %* Establish std. Humana GOPTIONS.; GOPTIONS RESET=ALL; GOPTIONS DEVICE=GIF NOCHARACTERS GUNIT=PT AUTOSIZE=OFF BORDER CTEXT = BLUE CBACK = WHITE XPIXELS=&x YPIXELS=&y HTEXT = 10 HTITLE = 16 COLORS=(BLACK RED GREEN BLUE PURPLE VIOLET ORANGE YELLOW PINK CYAN MAGENTA BROWN GOLD LIME GRAY LILAC MAROON SALMON TAN CREAM LTGRAY VILG /*vivid yellow green*/ VIG /*vivid green*/ STR /*strong red*/ MOOL /*moderate olive*/ VIB /*vivid blue*/ BIP /*brilliant purple*/ VIY /*vivid yellow*/ VIBG /*vivid bluish green*/ BIV /*brilliant violet*/ VIYPK /*vivid yellowish pink*/ VIRO); /*vivid reddish orange*/ %MEND gopts;

Page 10: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Generating a GraphODS LISTING CLOSE; %gopts; %odshtml (report=MSULP,graph=y,label=MSU

Usage,title=GRAPH); TITLE1 COLOR=BLUE HEIGHT=14 'MSU Usage'; TITLE2 COLOR=BLUE HEIGHT=11 "&daydate"; FOOTNOTE1 JUSTIFY=LEFT COLOR=BLUE HEIGHT=8

FONT=SWISS 'Source: SMF/MICS DETAIL2.HARCPUnn Data'; SYMBOL1 COLOR=MAGENTA INTERPOL=JOIN HEIGHT=5 VALUE=DOT; SYMBOL2 COLOR=GREEN INTERPOL=JOIN HEIGHT=5 VALUE=DIAMOND; SYMBOL3 COLOR=ORANGE INTERPOL=JOIN WIDTH=2 VALUE=NONE; SYMBOL4 COLOR=RED INTERPOL=JOIN WIDTH=3 VALUE=NONE; AXIS1 LABEL=(ANGLE=90 HEIGHT=12 FONT=SWISSB 'MSU Consumption') VALUE=(FONT=SWISS HEIGHT=9);

AXIS2 ORDER=('00:00:00'T TO '24:00:00'T BY '01:00:00'T)

VALUE=(ANGLE=90 FONT=SWISS HEIGHT=9)

LABEL=(FONT=SWISSB HEIGHT=12 'Time of Day');

LEGEND1 FRAME CBORDER=BLUE LABEL=NONE VALUE=(HEIGHT=8 FONT=SWISSB);

PROC GPLOT DATA=lpar; PLOT (lparlac lparused lpardef lparmsu)*time / NAME='MSULP' DES='#BYVAL(lparname)' OVERLAY HAXIS=AXIS2 VAXIS=AXIS1 HMINOR=3 VMINOR=9 VZERO AUTOVREF LVREF=1 CVREF=BLUE CAXIS=BLUE CTEXT=BLUE LEGEND=LEGEND1; BY lparname; RUN; QUIT; ODS HTML CLOSE; ODS LISTING; /* fix stuff */ %fixhtml (report=MSULP); %bnote (report=MSULP,program=TSTGRAPH,title=MSU Usage

Graphs);

Page 11: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Graphics Web Page 1

http://mvs.humana.com/MVSDS/'RSR1413.CPCMXG2.HTML(MSULPF)'

Page 12: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Graphics Web Page 2

Page 13: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

SAS Generates Bad HTML for PDSE!

<div class="branch"> <a name="ANCHOR"></a> <div> <div class="c"> <table frame="box" border="1px" bordercolor="#000000" cellspacing="1" cellpadding="0" bgcolor="#FFFFFF" summary="Page Layout"> <tr> <td> <div align="center"> <img alt="SYSA" src="'RSR1413.CPCMXG2.GIF(MSULP)'msulp.gif" border="0" class="c"> </div> </td> </tr> </table> </div> </div> <br> <p style="page-break-after: always;"><br></p><hr size="3"> <a name="ANCHOR1"></a> <div> <div class="c"> <table frame="box" border="1px" bordercolor="#000000" cellspacing="1" cellpadding="0" bgcolor="#FFFFFF" summary="Page Layout"> <tr> <td> <div align="center"> <img alt="SYSD" src="'RSR1413.CPCMXG2.GIF(MSULP)'msulp1.gif" border="0" class="c"> </div> </td> </tr> </table> </div> </div> <br> Patricia Wingfield’s paper presents a fix, code to scan and correct the error.

Page 14: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Colors

GIF defaults to Black, Red, Green, Blue, Cyan, Magenta, Gray, Pink, Orange, Brown, White

Broad spectrum of colors available Specify the ones you want in GOPTIONS http://support.sas.com/onlinedoc/913/getDoc/en/grap

href.hlp/colors-specify-color.htm http://ftp.sas.com/techsup/download/sample/graph/ot

her-colors.html Program to display a palette of colors - FULLPALT

Autolib member COLORMAC – Macros to custom define colors

Page 15: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

FULLPALT - Output

16 pages of output, PC SAS

Page 16: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

COLORMAC - Color Definition Macros Define custom colors Macro is in SAS Autolib Contains many macros to help define colors One line of source code is > 72 characters Use the following code to load it:

%LET OPT_S2= %SYSFUNC(GETOPTION(S2)); /* GET CURRENT S2= OPTION */

OPTIONS S2=0; /* RESET TO ZERO */

%INCLUDE 'SAS.AUTOLIB(COLORMAC)';

OPTIONS S2=&OPT_S2; /* RESTORE OPTION */

/* now you can invoke macros from COLORMAC member */

Thanks to Scott Barry – SBBWorks, Inc.

Page 17: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Heat Chart!

Visualization of Performance Data – James Holtman, CMG2005 Used withoutpermission

Page 18: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

How Do You Make a Heat Chart?

8 months of research and trial and error Not a lot of documentation available Weather temperature maps Started with PROC GCONTOUR

Doesn’t work right SAS problem

Tips and Tricks: Using SAS/Graph Effectively A. Darrell Massengill, SAS http://www2.sas.com/proceedings/sugi30/090-30.pdf http://support.sas.com/rnd/papers/sugi30/sasgraph_src

.zip - source code for graphs in paper

Page 19: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Temperature Map

Page 20: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

GCONTOUR Sample

PROC GCONTOUR example 4.

Page 21: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Inspiration!

Page 22: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Spectrum.sas Output

Page 23: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Determining Heat Range Colors

Page 24: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Heat Range Colors

GOPTIONS DEV=gif COLORS=(BWH /*bluish white*/ VPAB /*very pale blue*/ VLIB /*very light blue*/ LIB /*light blue*/ STB /*strong blue*/ PALG /*pale yellow green*/ LILG /*light yellow green*/ BILG /*brilliant yellow green*/ VILG /*vivid yellow green*/ GREEN %cns (light yellow)

GOLD %cns (yellowish orange) ORANGE %cns (reddish orange) LIYPK /*Light yellowish pink*/ STYPK /*strong yellowish pink*/ VIYPK /*vivid yellowish pink*/ RED STR /*strong red*/

WHITE BLACK);

The %cns macro is defined in the COLORMAC macro definitions.The best usage documentation is inside COLORMAC.

Page 25: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

z/Series CPU Usage Heat Charts

Page 26: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Building Heat Charts

Customized ranges for each chart requires a separate invocation of PROC GPLOT for each chart.

Build a macro to generate heat charts, customizing the axis's and legend (ranges)

Using PROC GPLOT Assume each range is a separate line Plotting 20 lines maximum No connecting line between points

Page 27: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 1

Determine level

PROC SUMMARY DATA=cpusage; VAR hwmsu; BY sysname; OUTPUT MAX(hwmsu)=maxhwmsu OUT=maxmsu; DATA cpusage2; MERGE cpusage maxmsu; BY sysname; level=INT(usedmsu/(maxhwmsu/20))+1; incr=maxhwmsu/20; *level=INT(usedmsu/ROUND(maxhwmsu/20))+1;IF level=21 THEN level=20;

Page 28: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 2

Graphics Setup

FOOTNOTE1 JUSTIFY=LEFT COLOR=BLUE HEIGHT=8 FONT=SWISS 'Source: SMF/MICS DETAIL2.HARCPU99/WLMSEC99 Data'; AXIS1 LABEL=(HEIGHT=12 FONT=SWISSB 'Time of Day') ORDER=('00:00:00'T TO '24:00:00'T BY '1:00:00'T) MINOR=(NUMBER=3 COLOR=BLUE) MAJOR=(COLOR=BLUE) VALUE=(ANGLE=90 FONT=SWISS HEIGHT=9); AXIS2 VALUE=(FONT=SWISS HEIGHT=8) MAJOR=(COLOR=BLUE) ORDER=("&sdate"D TO "&edate"D) MINOR=NONE LABEL=(ANGLE=90 HEIGHT=12 FONT=SWISSB 'Date'); TITLE1 COLOR=BLUE HEIGHT=16 FONT=SWISSB 'Monthly Plot of MSU Usage'; TITLE2 COLOR=BLUE HEIGHT=14 FONT=SWISSB "For the Month of &month &year"; SYMBOL1 INTERPOL=NONE VALUE=U FONT=MARKER H=8.5; %MACRO lgnd; %DO i=1 %TO 20; &&lval&i %END; %MEND lgnd;

Page 29: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 3

%MACRO heat (system=); DATA plot2; SET cpusage2 END=eof; IF sysname=:"&system" THEN OUTPUT; IF eof THEN DO; date="&edate"D; time=.; sysname="&system"; DO level = 1 to 20; OUTPUT; END; END; DATA _NULL_; SET plot2; BY date; IF onetime THEN DO; RETAIN onetime 1; onetime=0; CALL SYMPUT('maxmsu',PUT(maxhwmsu,6.)); CALL SYMPUT('sysname',PUT(sysname,$4.)); incr=maxhwmsu/20; DO i = 1 to 20; CALL SYMPUT('lval'||LEFT(i), "'"||'< '||TRIM(LEFT(PUT(ROUND(i*incr),COMMA6.)))||"'"); END; END; RUN;

Build Chart Macro

Page 30: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 4

LEGEND1 FRAME CBORDER=BLUE VALUE=(HEIGHT=9 FONT=SWISS %lgnd) LABEL=(HEIGHT=9 FONT=SWISSB 'Used HW MSUs'); TITLE3 COLOR=BLUE HEIGHT=12 FONT=SWISSB "&sysname"; %LET days=%SYSEVALF("&edate"D-"&sdate"D+1); %LET note=1; %IF &days<31 & &maxmsu<1000 %THEN %DO; %LET loop=%SYSEVALF(31-&days); %DO i=1 %TO &loop; %LET note=%EVAL(&note+1); FOOTNOTE&note FONT=SWISS HEIGHT=9 ' '; %END; %END; %IF &days<30 & &maxmsu>1000 %THEN %DO; %LET loop=%SYSEVALF(30-&days); %DO i=1 %TO &loop; %LET note=%EVAL(&note+1); FOOTNOTE&note FONT=SWISS HEIGHT=9 ' '; %END; %END;

Page 31: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 5

PROC GPLOT DATA=plot2; PLOT date*time=level / SKIPMISS AUTOVREF VZERO NAME='MHEAT' DES="&sysname" /*DES='#BYVAL(sysname)'*/ HAXIS=AXIS1 VAXIS=AXIS2 LVREF=1 CVREF=WHITE CAXIS=BLUE CTEXT=BLUE LEGEND=LEGEND1; RUN;QUIT; %IF &note>1 %THEN %DO; FOOTNOTE2; /*Remove extra footnotes */ %END; %MEND heat;

Page 32: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Code 6

ODS LISTING CLOSE; /* SYSA */ %heat (system=SYSA); /* SYSD */ ODS PROCLABEL=' '; %heat (system=SYSD); /* SYSF */ ODS PROCLABEL=' '; %heat (system=SYSF); /* SYSI */ ODS PROCLABEL=' '; %heat (system=SYSI); /* SYSS */ ODS PROCLABEL=' '; %heat (system=SYSS); /*wrap up*/ ODS HTML CLOSE; ODS LISTING; %fixhtml (report=MHEAT); %bnote (report=MHEAT,program=MHEAT);

Invoke macro for each chart

Page 33: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Monthly LPAR MSU Usage

Page 34: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Monthly CPC MSU Usage 1

Page 35: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Monthly CPC MSU Usage 2

Page 36: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Month to Date Views

Page 37: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Busy Disks 1

Page 38: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Busy Disks 2

Page 39: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Busy Disks 3

Page 40: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Disk Code 1

drive= devaddr || '-' || volser; ....PROC SORT DATA=dvamax; BY sysname drive; DATA dvamax; RETAIN ricknum; SET dvamax; BY sysname drive; IF FIRST.sysname THEN ricknum=0; ricknum+1; ....%MACRO value; %DO i=1 %TO &tot; &&val&i %END; %MEND value; ....

Page 41: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Disk Code 2

DATA _NULL_; SET plot2 END=eof; BY ricknum; IF onetime THEN DO; RETAIN onetime 1; onetime=0; CALL SYMPUT('sysname',PUT(sysname,$4.)); incr=maxsscrt/20; DO i = 1 to 20; CALL SYMPUT('lval'||LEFT(i), "'"||'< '||TRIM(LEFT(PUT(ROUND(i*incr),COMMA6.)))||"'"); END; END; IF FIRST.ricknum THEN CALL SYMPUT('val'||LEFT(ricknum),"'"||TRIM(LEFT(drive))||"'"); IF eof THEN DO; CALL SYMPUT('tot',LEFT(ricknum)); END; RUN; ....

Page 42: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Disk Code 3

LEGEND1 FRAME CBORDER=BLUE VALUE=(HEIGHT=9 FONT=SWISS %lgnd)

LABEL=(HEIGHT=9 FONT=SWISSB 'Start IOs per Second');

AXIS2 VALUE=(FONT=SWISS HEIGHT=8 %value)

ORDER=(1 TO &tot BY 1) MINOR=NONE MAJOR=(COLOR=BLUE)

LABEL=(ANGLE=90 HEIGHT=10 FONT=SWISSB 'Disk Drive');

.... Similar PROC GPLOT code goes here

Page 43: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Workload Utilization - Traditional

Page 44: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Workload Utilization - Better

Page 45: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

X Axis code

%MACRO xaxis; %DO i=1 %TO 124; &&laxis&i %END;%MEND xaxis;

DATA _NULL_;DO i = 1 to 124; IF MOD(i,4) = 0 THEN DO; q=i/4; IF q>24 THEN q=q-24; CALL SYMPUT('laxis‘ || LEFT(i),"'“ || TRIM(LEFT(PUT(q,2.))) || "'"); END; ELSE CALL SYMPUT('laxis‘ || LEFT(i),"'“ || ' ‘ || "'"); END;

AXIS2 ORDER=("&begxg"DT TO "&endx"DT BY '00:15:00'T) LABEL=(HEIGHT=10 FONT=SWISSB 'Time of Day') VALUE=(HEIGHT=7 FONT=SWISS %xaxis);

Page 46: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Workload Utilization – Heat Chart

Page 47: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Next Steps

Templates Migration to HFS Keep refining heat range colors & ranges Monthly & MTD views of various applications

WLM classes CICS & DB2 transaction volumes

Daily – top 30 Transactions Monthly & MTD usage patterns Response time?

Temp/workspace usage? Develop Crystal Reports code to do same for Wintel

Servers

Page 48: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Thanks!

Patricia Wingfield Scott Barry Al Sherkow James Holtman Various SAS support people

Page 49: Using SAS/Graph on z/OS to Display Performance and Capacity Data Richard S. Ralston Humana, Inc

Contact info

Richard S. Ralston

[email protected]

[email protected]