Easytrieve I/O Optimization

Easytrieve batch jobs are I/O engines: sequential scans of payroll masters, VSAM updates to deduction files, sort work data sets spilling to disk, and SYSPRINT streams. When elapsed time is high but CPU is moderate, buffer counts, device placement, and access patterns deserve attention before rewriting business logic. Broadcom environmental options and decades of field tuning articles converge on BUFNO for QSAM files, VSAM AMP buffers, spreading datasets across volumes, and choosing keyed access over full-file reads. This tutorial explains each technique for beginners maintaining classic z/OS batch jobs.

Progress0 of 0 lessons

Measure I/O Versus CPU First

Job logs show CPU time and often EXCP counts. High EXCP with high wait suggests buffer underrun or device contention. High CPU with moderate EXCP points to sort or formatting instead. SMF type 30 records help operations quantify wait. Bring evidence to tuning sessions—avoid raising BUFNO globally without data.

BUFNO for Sequential Files

The BUFNO site option sets default sequential buffers; FILE BUFNO overrides per file; JCL DCB BUFNO can override at allocation time. More buffers let Easytrieve read ahead, reducing wait on large sequential GET loops. Each buffer consumes memory—balance against REGION and VFM. VSAM files use different buffer mechanisms; do not assume FILE BUFNO helps indexed GET the same way.

text
1
2
3
4
FILE TRANS FB(200 20000) BUFNO=10 %TRANS JOB INPUT TRANS PRINT DAILY
text
1
2
//TRANSIN DD DSN=FIN.TRANS.DAILY,DISP=SHR, // DCB=(BUFNO=10,BLKSIZE=20000,LRECL=200,RECFM=FB)

VSAM Buffer Tuning

For KSDS and ESDS files, buffer pools are defined in VSAM and referenced through JCL AMP parameters. Random READ patterns need different buffer counts than sequential passes. Coordinate with storage administrators when changing STRNO or buffer numbers—VSAM tuning affects other jobs sharing the cluster.

Device Placement and Contention

When JOB activities read three large files simultaneously, placing all three on one volume creates an arm contention bottleneck. Spread input, output, and sort work across volumes or use modern storage groups that stripe automatically—verify with your site standards. Sort work DDs deserve fast work volumes with space for peaks.

I/O tuning controls
ControlApplies toGoal
FILE BUFNOSequential QSAMMore read-ahead buffers
JCL AMPVSAMMatch buffers to access pattern
Volume spreadMulti-file jobsReduce arm wait
Keyed READLarge KSDS subsetsFewer physical reads
EZTVFM VIOVFM overflowFaster overflow path

Access Pattern Choices

Sequential GET is natural for Easytrieve JOB input but wrong for “fetch ten accounts from a million-account KSDS.” Use READ with keys or driver files listing keys. For ETL-style jobs, presort sequential extracts once rather than random VSAM hits repeated millions of times unless caching design proves cheaper in test.

Tape and Large Block Interface

Tape archives using Easytrieve still appear in insurance and tax shops. Release notes document LBI for tape to maximize block sizes supported by hardware. Match FILE DCB attributes and JCL BLKSIZE with device capabilities; small blocks waste tape passes and increase mount time.

EZTVFM and VIO

Overflow from VFM uses EZTVFM DD space. Allocating on VIO can reduce elapsed time compared with physical packs for temporary overflow, but virtual storage pressure is a site concern. Operations set VFMDEV and related options in the environmental options table—developers request changes through change control rather than hardcoding assumptions.

Block Size Zero

Modern releases allow block size zero on FILE or JCL DCB to delegate block sizing. Useful when storage groups manage optimal block sizes dynamically. Test with allocation utilities on your LPAR before production adoption.

I/O Tuning Workflow

  1. Capture baseline EXCP and wait for the job step.
  2. Identify top datasets by EXCP in SMF or job statistics.
  3. Trial BUFNO increase on dominant sequential input only.
  4. Review VSAM AMP with storage admin for random-heavy files.
  5. Validate volume placement for concurrent multi-file reads.
  6. Re-test with production-like volume after each single change.

Explain It Like I'm Five

I/O is fetching books from the library shelf. BUFNO is carrying several books at once so you make fewer trips. Putting different homework folders on different shelves stops everyone from waiting on one librarian. Reading only the pages you need beats copying the entire encyclopedia every time.

Exercises

  1. List sequential versus VSAM files in a sample program and assign tuning approach to each.
  2. Draft JCL AMP for a KSDS used in random READ tests.
  3. Estimate EXCP reduction if BUFNO doubles on a full-file scan (conceptually).
  4. Propose volume layout for a three-input merge job.

Quiz

Test Your Knowledge

1. BUFNO on the FILE statement affects:

  • Number of buffers for sequential QSAM-style files
  • VSAM CI size in the catalog
  • Compile listing page breaks
  • SCREEN map colors

2. Placing heavily used input files on different volumes helps reduce:

  • DASD arm contention when multiple files are read together
  • Compile time
  • Reserved word collisions
  • Macro expansion size

3. Reading a few records from a large file should use:

  • Keyed READ or random access where organization supports it
  • Sequential GET through the entire file always
  • TABLE INSTREAM always
  • DISPLAY HEX only

4. UNIT=VIO on EZTVFM compared with UNIT=SYSDA often:

  • Uses virtual I/O that can be faster than physical DASD for overflow
  • Disables VFM entirely
  • Requires no JCL space parameter
  • Applies only to tape files

5. Block size zero on FILE or JCL DCB allows:

  • System-determined block sizing per Broadcom release notes
  • Records with zero bytes
  • Automatic SORT elimination
  • Removal of BUFNO

Frequently Asked Questions

What is the default BUFNO and should I change it?

Legacy performance articles cite default BUFNO of two for Easytrieve Plus sequential files. Increasing BUFNO can reduce physical I/O on large sequential scans but consumes buffer storage. Test increments with operations—there is no universal best value.

How do I tune VSAM buffers for Easytrieve?

Use JCL AMP parameters or VSAM IDCAMS definitions for STRNO, BUFND, and BUFNI as appropriate to your access pattern (sequential versus random). FILE BUFNO does not replace VSAM buffer tuning.

Does tape LBI matter for Easytrieve?

Broadcom release notes mention Large Block Interface for tape files to use maximum block sizes supported by the device. Tape-heavy archives benefit from matching LBI-capable DCB settings in JCL and FILE definitions.

Why spread files across volumes?

Jobs reading MASTER, REFERENCE, and UPDATE concurrently on one volume wait on the same device. Spreading reduces queue time and improves elapsed time even if CPU stays flat.

Is I/O tuning separate from sort tuning?

Related but distinct. Sort work datasets dominate some jobs; BUFNO and VSAM buffers dominate others. Measure EXCP counts and wait types to decide which page of guidance applies first.

Published
Read time15 min
AuthorMainframeMaster
Reviewed by MainframeMaster teamVerified: Broadcom environmental BUFNO, performance KB 28459, release notes LBI and block size zeroSources: Broadcom Environmental Options, performance article 28459, Easytrieve 11.6 release notesApplies to: Easytrieve I/O tuning on z/OS sequential and VSAM batch jobs