You can improve shell performance by controlling the use of STEPLIBs.
A STEPLIB is a set of private libraries used to store a new or test
version of an application program, such as a new version of a runtime
library. To
improve performance of the z/OS® shell,
avoid propagating STEPLIBs by using one of the following options:
- If you enter the OMVS command either from ISPF or with STEPLIB
data sets allocated, include the statements in the shell profile.
For example:
if [ -z "$STEPLIB" ] &&; tty -s;
then
export STEPLIB=none
exec sh -L
fi
The STEPLIB data sets are not extensively searched
or propagated from the shell process to the shell command on exec().
They are also not propagated to shell processes, which might have
been necessary because a specific release level of the Language Environment® runtime
library is needed.
- If you use the OMVS command to login to the shell, you can improve
performance by using a logon procedure that does not contain any JOBLIB
or STEPLIB DD allocations. Using that procedure reduces the amount
of storage that is copied for fork(). It also prevents excessive searching
of STEPLIB data sets and the propagation of STEPLIB data sets from
the shell process to the shell command processes on exec().
If
you enter the OMVS command from ISPF or with STEPLIB data sets allocated,
you can put certain statements in either /etc/profile or $HOME/.profile.
- If you export a specific STEPLIB, you can have the Language Environment runtime
library (SCEERUN) data set allocated as part of ISPLLIB to invoke
OMVS from ISPF. In this case, you need to customize $HOME/.profile so
that subset of the STEPLIB data sets is propagated
Example: Customize
$HOME/.profile so
that only the STEPLIB data set
CEE.SCEERUN containing
the Language Environment runtime
library is propagated.
if [ -z "$STEPLIB" ] &&; tty -s;
then
export STEPLIB=CEE.SCEERUN;
exec sh -L
fi
Result: A module found in CEE.SCEERUN is loaded
from that library into the user's private storage, even if the same
module has been put into the LPA. This action can become a concern
if the STEPLIB points to a Language Environment runtime
library, because several loads are done for each exec() to initialize
the environment. If you have a number of users accessing this load
library, you can avoid directory I/O as well as I/O to load frequently
used members by caching the library in LLA and VLF.