(ZOS) Resource Recovery Service (RRS) tuning tips for z/OS
Use these tips to tune your z/OS operating system to optimize WebSphere Application Server performance.
- For best throughput, use coupling facility (CF) logger for the RRS log.
DASD logger can limit your throughput because it is I/O-sensitive. The CF logger has more throughput (in one measurement, the CF logger was six times faster than the DASD logger). Throughput will benefit from moving the RRS logs in logger to a coupling facility (CF) logstream. Doing so will help transactions complete quickly and not require any DASD I/O. If it's not possible to use CF logs, use well performing DASD and make sure the logs are allocated with large CI sizes.
- Ensure that your CF logger configuration is optimal using SMF 88 records.
See the tuning section of z/OS MVS Setting Up a Sysplex or the chapter on System Logger Accounting in z/OS MVS System Management Facilities (SMF) for details. In any case, we should monitor the logger to ensure that there is a sufficient size in the CF and that offloading is not impacting the overall throughput. The transaction logs are shared I/O-intensive resources in the mainline and can affect throughput dramatically if mistuned.
- Set adequate default values for the LOGR policy.
Default values of LOGR policy may have an impact on performance. We might want to use the default settings in the table. bprac
Log Stream Initial Size Size RM.DATA 1 MB 1MB MAIN.UR 5 MB 50 MB DELAYED .UR 5 MB 50 MB RESTART 1 MB 5 MB ARCHIVE 5 MB 50 MB - Review XA Resource Managers log sizes.
If we are using XA Resource Managers and we have chosen to put the logs in the logger, you may have to review the log sizes. As of this writing, we cannot give specific recommendations.
We can configure the XA logs in the install dialog to live either in the HFS or in logstreams. If we are not using global transactions involving XA resources, there is no point in putting the log in a logstream. If the XA logs are placed in logstreams, they should be in the Coupling Facility instead of DASD. The default names are 'HLQ.server.M' and 'HLQ.server.D' where HLQ is a user-defined value between 1-8 characters specified in the install dialog, and 'server' is the server short name. It is the installer's responsibility to ensure that the HLQ + server name is unique across the configuration. If it is not, the server will fail to start because the user data in the existing logstream will not match that of the new server. The logs (and structures, if applicable) are created in job 'BBOLOGSA' in the install dialog. If structures need to be allocated, there is also a step indicating what structure names need to be added to the CFRM policy. 5MB initial and 20MB max sizes should be used for both of these logstreams.bprac
Set AUTODELETE(NO) for all logstreams.
- Eliminate archive log if not needed.
If we don't need the archive log, we should eliminate it since it can introduce extra DASD I/Os. The archive log contains the results of completed transactions. Normally, the archive log is not needed. Following is an example of disabling archive logging.bprac
Example:
//STEP1 EXEC PGM=IXCMIAPU //SYSPRINT DD SYSOUT=* //SYSIN DD * DATA TYPE(LOGR) DELETE LOGSTREAM NAME(ATR.WITPLEX.ARCHIVE) DELETE LOGSTREAM NAME(ATR.WITPLEX.MAIN.UR) DELETE LOGSTREAM NAME(ATR.WITPLEX.RESTART) DELETE LOGSTREAM NAME(ATR.WITPLEX.RM.DATA) DELETE LOGSTREAM NAME(ATR.WITPLEX.DELAYED.UR) DELETE STRUCTURE NAME(RRSSTRUCT1) /* //STEP2 EXEC PGM=IXCMIAPU //SYSPRINT DD SYSOUT=* //SYSIN DD * DATA TYPE(LOGR) DEFINE STRUCTURE NAME(RRSSTRUCT1) LOGSNUM(9) DEFINE LOGSTREAM NAME(ATR.WITPLEX.MAIN.UR) STRUCTNAME(RRSSTRUCT1) STG_DUPLEX(YES) DUPLEXMODE(UNCOND) LS_DATACLAS(SYSPLEX) LS_STORCLAS(LOGGER) HLQ(IXGLOGR) AUTODELETE(NO) RETPD(3) DEFINE LOGSTREAM NAME(ATR.WITPLEX.RESTART) STRUCTNAME(RRSSTRUCT1) STG_DUPLEX(YES) DUPLEXMODE(UNCOND) LS_DATACLAS(SYSPLEX) LS_STORCLAS(LOGGER) HLQ(IXGLOGR) AUTODELETE(NO) RETPD(3) DEFINE LOGSTREAM NAME(ATR.WITPLEX.RM.DATA) STRUCTNAME(RRSSTRUCT1) STG_DUPLEX(YES) DUPLEXMODE(UNCOND) LS_DATACLAS(SYSPLEX) LS_STORCLAS(LOGGER) HLQ(IXGLOGR) AUTODELETE(NO) RETPD(3) DEFINE LOGSTREAM NAME(ATR.WITPLEX.DELAYED.UR) STRUCTNAME(RRSSTRUCT1) STG_DUPLEX(YES) DUPLEXMODE(UNCOND) LS_DATACLAS(SYSPLEX) LS_STORCLAS(LOGGER) HLQ(IXGLOGR) AUTODELETE(NO) RETPD(3) /* //* DEFINE LOGSTREAM NAME(ATR.WITPLEX.ARCHIVE) //* STRUCTNAME(RRSSTRUCT1) //* STG_DUPLEX(YES) //* DUPLEXMODE(UNCOND) //* LS_DATACLAS(SYSPLEX) //* LS_STORCLAS(LOGGER) //* HLQ(IXGLOGR) //* AUTODELETE(NO) //* RETPD(3)
RRS manual recommends creating one structure per log stream.
Tune the z/OS operating system Tune operating systems