Choosing IMS options for performance
Performance implications are associated with many parameters. Some parameters are chosen for system definition, some for execution-time options, and some are an integral part of design decisions.
The following list discuss many of the options.
- Optimizing IMS and application
module loading
Where possible, unless availability of virtual storage is a constraint, use the pageable link pack area (PLPA) for IMS reentrant modules, region and program controllers, frequently used high-level language modules, any reentrant application code, and the overlay supervisor (if used).
Use the execution-time parameter SRCH=1 in the IMS procedure to cause the job pack area and link pack area to be searched before STEPLIB or JOBLIB.
- Program library considerations
Place a program library containing the production programs first in the STEPLIB concatenation for the message regions. The sequence of programs in IMS.PGMLIB should be in descending order based on frequency of use.
The order of the system search for program libraries can account for some inefficiency in program load. STEPLIB or JOBLIB is the first program library searched. If one of these is not used, IMS.PGMLIB should be first in the LNKLSTnn member of SYS1.PARMLIB. The placement of IMS.PGMLIB is far more important than IMS.SDFSRESL, because its contents are in continual demand for application program scheduling rather than being in demand only at system initialization. The search and load times are significant because they become a performance penalty each time the program is scheduled. You should block programs to full track size in the library. The DC option of the linkage editor, used for downward compatibility, causes program block sizes to be 1024 bytes. You should bind again without this option.
- Dependent region BLDL list
A list of entries is maintained in the dependent region containing the directory index for programs. It is maintained on the most active, most recently used basis, and reduces the I/O to the program directory. Programs with entries in this list have a lower schedule-to-first DL/I call elapsed time than infrequently used programs. You can override the default of 20 entries for the message processing region by using the DBLDL parameter in the EXEC statement of the DFSMPR procedure. The maximum number of entries for the message processing region is 9999.
For a region that is used to test new or changed programs, set the DBLDL parameter to 0, ensuring that the most current version of the program is loaded for each execution. Specifying the DOPT parameter disables quick reschedule.
- Application control block placement
To reduce the amount of read I/O to the ACBLIB data set, you can load the ACB members into 64-bit storage by specifying ACBIN64=ggg in the DATABASE section of the DFSDFxxx PROCLIB member. The value specified (ggg) is the amount of 64-bit storage (in gigabytes) to be allocated for PSB and DMB ACB members.
When the ACB members in 64-bit storage function is enabled, the ACB members are retrieved from 64-bit storage at application scheduling time instead of from the ACBLIB data set.
- Application program control
Specify MODE=SNGL on the TRANSACT macro statement to reduce message queue I/O activity, and response time.
For the batch message program execution controlled by a time limit, select the IMSBATCH procedure parameter STIMER=2. This causes the STIMER/TTIMER macro to be issued only once per schedule, rather than once per DL/I call with STIMER=1. Similarly, use the value 2 for the positional parameter STIMER for the DFSMPR procedure when controlling message processing regions.
For the IMSBATCH procedure, use parameter values of SPIE=0 and TEST=0 for production programs to eliminate unwanted SVCs. The equivalent positional parameters for the DFSMPR procedure are SPIE and VALCK.
With PL/I, use the latest release of the optimizing compiler to reduce initialization and termination overhead.
- Setting checkpoint frequencyAdjust the checkpoint frequency so that checkpoints are not taken more frequently than once every 10 to 20 minutes. You control this frequency either by using one of the following methods. If you do not specify a checkpoint frequency, IMS uses a default value of 500,000
- By specifying the CPLOG= parameter on the DFSPBxxx member of the IMS PROCLIB data set
- By specifying the CPLOG= parameter in JCL
- By issuing the /CHANGE CPLOG command
- Message format options
Specify FILL=NULL or FILL=PT in DOFs that have many DFLDs to minimize the transmission of blank characters.
- Setting queuing options
If you do not want priority processing, you can use the IOS queuing option to set priority processing off. The IOS option causes IMS to process all jobs in the queue on a
first-in, first-out
basis. - Page fixing IMS resources
If you want to ensure that the IMS virtual storage is always backed by real storage, you can specify a list of page-fix requests in the member DFSFIXxx in IMS.PROCLIB. The page fix is done during the IMS control region initialization. Long-term page fixing for the queue manager buffers can be requested using the EXVR parameter in the EXEC statement of the control region JCL.
You tune buffer pools to make them large enough to reduce or minimize I/O activity without driving up the system paging rate or constraining virtual storage. Considerations for page fixing buffer pools are given in Page fixing the IMS buffer pools.
- Defining IMS resources for
DREF storage in DB/DC and DCCTL environments
You can request that the IMS virtual storage never migrate to auxiliary storage. By specifying DREF requests in the DFSDRFxx member in the IMS PROCLIB member, you ensure that virtual storage does not move beyond expanded storage. If expanded storage is not available, the storage is page fixed.
Related reading: For more information about DREF requests, see IMS Version 15.6 System Definition.
- MVS page fix considerations
MVS modules that are frequently referred to by the IMS system should be page fixed at initial program load.
Page fixing certain modules also saves a
Page fix and Wait
SVC for each occurrence of timer facilities. Place these modules close together to minimize the number of pages in the pageable link pack area (PLPA).Related reading: For more information on MVS modules, see z/OS MVS Initialization and Tuning Guide.