When
C programs (including the shell and utilities) are run, they frequently
use routines from the Language Environment® runtime library, which come from the SCEERUN data
set. On average, about 4 MB of the runtime library are loaded into
memory for every address space running a Language Environment-enabled
program, and copied on every fork. If you have 200 address spaces
running, this uses 800 MB of pageable storage. It also increases your
paging rates or reduces the amount of work that the system can support.
For information about the effect of putting modules into the LPA,
see z/OS MVS Initialization and Tuning Guide .
To reduce this overhead and improve performance, you can do one
of the following:
- Put the SCEELPA data set in the LPA list. Because the SCEERUN
data set has many modules that are not reentrant, you cannot place
the entire data set in the link pack area using the LPALIST member
of SYS1.PARMLIB. However, you can take advantage of a SCEELPA data
set that contains a subset of the SCEERUN modules – those that are
reentrant, reside above the line, and are heavily used by z/OS® UNIX.
To
improve performance, put the SCEERUN data set in the link list (LNKLSTxx
member). Then use the LPALSTxx member to place the SCEELPA data set
in the LPA list. You can also add additional modules to the LPA, using
the dynamic LPA capability (SET PROG=). For more information about
LPALSTxx and LNKLSTxx, see z/OS MVS Initialization and Tuning Reference.
- Put libraries CEE.SCEERUN and CEE.SCEERUN2 into LLA. The
library lookaside facility (LLA) minimizes I/O by keeping heavily
used modules in a virtual lookaside facility (VLF) dataspace and keeping
a version of the library directory in its own address space. Assuming
that the libraries CEE.SCEERUN and CEE.SCEERUN2 are included in LNKLST,
you might choose to include all LNKLST modules in LLA. For example:
SYS1.PARMLIB(CSVLLAxx)
LIBRARIES(-LNKLST-)
FREEZE(-LNKLST-)
- Manage the runtime library in STEPLIBs. If you decide not
to put the runtime library in the link list, then you must set up
the appropriate STEPLIB for each application that needs to load modules
from SCEERUN. Although this method always uses additional virtual
storage, you can improve performance by defining the SCEERUN data
set to LLA. This action reduces the I/O that is needed to load the
runtime modules.