Analyzing short-on-storage conditions
Analysis of short-on-storage (SOS) problems begins by obtaining a dump when the system is in an SOS condition.
About this task
- Other resource constraints that cause CICS tasks to occupy storage for longer than is normally necessary
- A flood of tasks that overwhelms available free storage
- Badly designed applications that require unreasonably large amounts of storage
Procedure
Example
The dump extracts in this example are from a situation where the UDSA is short on storage.
Storage extents in 24-bit storage (below the line) are always allocated in multiples of 256 KB, except for the UDSA. If transaction isolation is active, the extent size for the UDSA is 1 MB, and each UDSA extent must be aligned on a megabyte boundary. If translation isolation is not active, the allocation is in 256 KB extents. You must allow for some fragmentation between the 256 KB extents of the CDSA, RDSA, and SDSA, compared with the 1 MB extents of the UDSA.
Storage extents in 31-bit storage (above the line) are allocated in multiples of 1 MB.
Storage extents in 64-bit storage (above the bar) are allocated in multiples of 2 GB.
Each extent has an associated page pool extent (PPX) and page allocation map (PAM).
Extent list: Start End Size Free
00700000 0073FFFF 256K 252K
Start End Size PPX_addr Acc DSA
00700000 0073FFFF 256K 09F0A100 C SDSA
PPX.SDSA 09F0A100 Pagepool Extent Control Area
0000 00506EC4 C6C8E2D4 D7D7E740 40404040 *.&>DFHSMPPX *
0010 E2C4E2C1 40404040 09A1BA68 071B3EA0 *SDSA ........*
0020 00040000 00700000 0073FFFF 071B5EE0 *................*
0030 00000000 09F0A150 00000040 0710A268 *.....0.&;.. ..s.*
0040 0003F000 00000000 00000000 00000000 *..0.............*
PAM.SDSA 09F0A150 Page Allocation Map
0000 00000000 00000000 00000000 00000000 *................*
0010 - 002F LINES SAME AS PREVIOUS
0030 00000000 0000007A 00000000 00000000 *................*
==SM: UDSA Summary (first part only)
Size: 512K
Cushion size: 64K
Current free space: 56K (10%)
* Lwm free space: 12K ( 2%)
* Hwm free space: 276K (53%)
Largest free area: 56K
* Times nostg returned: 0
* Times request suspended: 0
Current suspended: 0
* Hwm suspended: 0
* Times cushion released: 1
Currently SOS: YES
==SM: SDSA Summary (first part only)
Size: 4352K
Cushion size: 64K
Current free space: 2396K (55%)
* Lwm free space: 760K (17%)
* Hwm free space: 2396K (55%)
Largest free area: 252K
* Times nostg returned: 0
* Times request suspended: 0
Current suspended: 0
* Hwm suspended: 0
* Times cushion released: 0
Currently SOS: NO
What to do next
- Review the storage limits for your CICS system. See Setting the limits for CICS storage.
- For an SOS condition in 24-bit storage, determine whether the DSALIM parameter is set as large as possible. See Estimating, checking, and setting DSALIM.
- For an SOS condition in 31-bit storage, determine whether the EDSALIM parameter is set as large as possible. See Estimating, checking, and setting EDSALIM.
- For an SOS condition in 64-bit storage, determine whether the z/OS MEMLIMIT parameter is set to an appropriate value. See Estimating, checking, and setting MEMLIMIT.
- Review the use of options such as the maximum task specification (MXT parameter) and defining programs as resident, to keep down the overall storage requirement. Changing these settings might limit task throughput. You can also reduce a storage constraint below 16 MB by using programs that run above 16 MB. In addition, using the LPA reduces the amount of storage used in LDNUCRO by approximately 100 KB.
- Consider the tuning possibilities of z/OS and other tuning possibilities outside CICS. Also consider ways of dividing your CICS region.
- Consider enabling the CICS self-tuning mechanism, or fixing the size of one or more individual DSAs by using the appropriate SIT overrides. For instructions, see Fixing short-on-storage conditions caused by subpool storage fragmentation.