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 |
Last Updated on 08/13/2003
By kwills
Email: kwills14@comcast.net