Previous Topic: Storage Pools 0 and 255Next Topic: Segregating User and System Storage


Increasing the Efficiency of Storage Pool Usage

Here are some suggestions to make storage pool usage more efficient.

Define a Storage Cushion

Define a storage cushion for one or more storage pools. A storage cushion is space reserved in a storage pool for use by tasks that are already executing. Use of a storage cushion helps prevent space in the storage pool from being exhausted.

When the amount of unused space in storage pool 0 is smaller than the storage cushion, the DC/UCF system is said to be short on storage. The system starts no new tasks and uses the cushion to satisfy storage requests from tasks that are already executing. Storage cushions in secondary storage pools are also used only when the system is short on storage.

When space in storage pool 0 is freed and the amount of unused space exceeds the storage cushion, the system accepts requests to start new tasks. Additionally, the system no longer uses the cushion to satisfy storage requests from tasks that are already executing.

Use the CUSHION parameter of the system generation SYSTEM statement to specify the size of the cushion for storage pool 0. For secondary storage pools, use the CUSHION parameter of the corresponding system generation STORAGE POOL or XA STORAGE POOL statement.

More Information:

Size of the Cushion for Storage Pool 0

Typically, the size of the cushion for storage pool 0 is calculated to equal:

CA ADS Runtime System

Direct the CA ADS runtime system to calculate the amount of storage required for record buffer blocks (RBBs) instead of using the size specified in the system generation ADSO statement. Calculated storage reduces the amount of wasted space in the storage pool but increases CPU usage.

To take full advantage of calculated storage, include as many records as possible either in the application global records or in the first dialog in the application thread. Either of these strategies minimizes the allocation and release of RBBs during links to lower-level dialogs and programs.

Use the STORAGE MODE IS CALCULATED parameter of the system generation ADSO statement to request calculated storage.

Note: For more information about the ADSO statement, see ADSO Statement.

Define a Fast Mode Threshold

The fast mode threshold is the point at which the DC/UCF system writes CA ADS record buffer blocks (RBBs) and statistics control blocks to the scratch area (DDLDCSCR) across a pseudo-converse. If the total size of the RBBs and statistics control blocks in all storage pools exceeds the fast mode threshold, the system writes the RBBs and statistics control blocks to scratch.

The fast mode threshold applies only when the system generation ADSO statement specifies RESOURCES ARE FIXED. If the ADSO statement specifies RESOURCES ARE RELOCATABLE, RBBs and statistics control blocks are always written to scratch across a pseudo-converse.

Use the FAST MODE THRESHOLD parameter of the system generation ADSO statement to specify a fast mode threshold.

Note: For more information about the ADSO statement, see ADSO Statement.

Relocatable Threshold

Define a relocatable threshold for one or more storage pools. The relocatable threshold is the point at which the DC/UCF system writes relocatable storage to the scratch area (DDLDCSCR) across a pseudo-converse.

Relocating storage makes more efficient use of the storage pool but increases I/O to the scratch area. You should define a threshold such that the system relocates storage only when the storage pool is heavily used.

Use the RELOCATABLE THRESHOLD parameter of the system generation SYSTEM statement to specify the relocatable threshold for storage pool 0. For secondary storage pools, use the RELOCATABLE THRESHOLD parameter of the corresponding system generation STORAGE POOL or XA STORAGE POOL statement.

More Information:

Define Secondary Storage Pools

Define secondary storage pools from which user programs can obtain storage space. Defining secondary storage pools allows the isolation of user-program storage from system storage and helps prevent the system from stalling when user programs require large amounts of storage space.

Operating systems that support 31-bit addressing: If secondary storage pools are defined, at least one of the pools should be in 24-bit memory (that is, non-XA).

You can assign one or more types of storage to each secondary storage pool that you define. To minimize the number of control tables that the system must search for a particular type of storage, however, you should assign each type of storage to no more than one storage pool.

Use the STORAGE POOL and XA STORAGE POOL statements to define secondary storage pools.

Note: For more information about these statements, see STORAGE POOL Statement and XA STORAGE POOL Statement.