"Best Practices"

General Mainframe Tuning and Cost Conservation Tips

 

Savings Type

Rank

Description

 

 

 

ALL

1

Reduce JOB Run frequency if possible. (Elimination works best)

DASD / Tape

2

Reduce GDG entries (if possible). 

DASD / Tape

3

Reduce CA-Dispatch Reports and unnecessary output files (if possible). 

ALL

4

Use a small subset of data for developing (E.G.: record counter in program, mini size).

CPU/Elasped

5

Use efficient Buffers - IMS, VSAM and SEQ file (bufno,bufni,bufnd)

DASD

6

Cleanup unneeded DSNS as last step of successful job run. (good habit)

DASD

7

Consider using TEMP DASD files (&&DSNS or 'temp' 1st qualifier) 

DASD/Tape

8

Right Size DSNS - Very Large DASD DSNS may be TAPE Candidates and very small tape DSNS may be DISK Candidates. (if not stacked or TMM managed)

CPU/Elasped

9

Right Size DSNS - DASD Allocations: 'Right Size' VSAM freespace for growth.

Production Perf

10

Never reference Production data if Test data can suffice.

DASD

11

Right Size DSNS - DASD Allocations: If USED amt is much less than ALLOCATED amount then reductions may save DASD. (consider growth trend)

DASD

12

Archive Large DASD test files to Tape if not referenced to it within 15 days. (might already be automated, but you probably can ‘force’ it using an HMIG SMS/HSM  command if you know that you don’t need it)

CPU/Elasped

13

Correct JOB and Step REGION size.

ALL

14

Reorg VSAM, DB2 and IMS with correct frequency. 

ALL

15

Work More Efficient - Use already developed tools / methodologies. Example: =Z ispf panel, QuickReference, other applications that have already developed a similar technique, etc.

ALL

16

Share your ideas with others. If you help others, they will help others too. Springboard effect.  

ALL

17

High Level Language Tuning. (SAS/COBOL) etc 

ALL

18

High Level File Tuning. (VSAM/DB2/IMS) etc

ALL

19

Indexes may no longer need 'backed up' if they can be re-built from Data.

DASD/CPU

20

Increase Purge Criteria for application. (purge more data, more often maybe). Watch the CPU cost tradeoff however. Try to completely automate.

CPU/Elasped

21

Presort Keys into physically stored order before loading or bulk retrieving.

CPU/Elasped

22

Apply record-reduction filters to large files before processing if possible. (EX: Syncsort INCLUDE filter,SAS OBS= parm, Cobol input control file) especially when testing/developing.

DASD

23

DASD Allocations: Freespace on a GDG entry is probably  a waste. RLSE extra space 

ALL 

25

Cleanup obsolete applications for overall savings if possible.

ALL

27

Investigate and consider new methodologies – Hypercache, Hyperspace, Batch Pipes etc

Contention

28

Reduce LOCKS: Use read-without-integrity as much as possible. Even with updaters. (Dirty read till an update condition, then re-read with an update lock.  (EX: IMS: GN till updated needed, then GHU on that key)

ALL

40

Remove unnecessary development code, traces, logfiles, etc when migrating a program into Prod.

ALL

42

Never run a process multiple times to get multiple copies. There are other ways. (Copies parameter)

ALL

45

Be nice to the 'system' (and others) - Load Balance - Run serial / overnight if results aren't urgent. 

DASD

50

Cleanup invalid DSNS with Catalog/DCB problems. (they may be a total waste – ‘delete’ candidates)

ALL

51

Tune with the 80/20 rule in mind. Consider how often the process runs. (daily vs yearly) Use STROBE for individual programs to find out what section of code is the most worth-while to tune.

CPU/Elapsed

52

Reduce number of individual field moves if a group move can suffice. Especially when dozens are involved.

Contention

53

Consider extra steps in a job to ‘get-in, get-out’ of a DBMS step, then ‘post-process’ with a non DBMS step. Multiple steps may even prevent too-complex programs, which helps the next programmer.

Devel Time

60

Avoid Repetition: Record a macro for later use (EX: MS Excel, HoD, Rumba etc) for common activities.

Devel Time

61

Avoid Repetition: Set up and use PF-Keys in your application (EX: TSO PF13-24)  for common activities.

Power User

62

If you keyboard has extra keys (probably at the top) – learn them and use them !!

Paper/Printer Time

85

MS Word/Excel/etc TIP: Use "Print Preview" to avoid printer/paper problems.

DASD

88

Try to avoid wasted DASD by examining your programs output files to make sure the SPACE RLSE parameter really works! (unopened output files)

Development Time

90

Presort JCL step instead of within a COBOL program if possible. 

Debugging Time

91

Code correct 'cond-code' values for forced abends (ABEND steps) in JCL rather than continuing unnecessary incorrect processing.

CPU/Elasped

92

Code least frequent 'HIT' conditions at the beginning of nested (or all AND)  'IF' statements. (least to most frequent hit order). On ‘IF’ statements with all OR’s the opposite is more efficient (most frequent hits first). The idea is to minimize the number of evaluations needed.

Production Support

94

Avoid 'Hardcoded' values within a program, that are prone to change. This will allow a quick change without having to recompile the program. (Checkpoint freq, records to process with normal end, records to process with Abnormal end (for restart testing), etc).

Elapsed (of Rerun)

95

Sometimes a long running program (even a read-only) has to be restarted. Making an intelligent restart can prevent re-processing records.

CPU/Elasped

96

COBOL Compiles probably go faster without OPTIMIZE while developing. 

Development Time

97

Try not to reinvent or spin your wheels needlessly. Call others for ideas, search internet, news groups, scan for examples, Use Bookmanager, quick reference (QREF).

ALL

99

Feel free to donate your favorite tip. Email: kwills14@comcast.net

                                        


TOP  HOME



Last Updated on 08/13/2003

By kwills
Email: kwills14@comcast.net