Workload-based write pacing is an enhanced form of write pacing that uses MVS workload management (WLM). All the concepts of write pacing, described in Write pacing, apply to workload-based write pacing. However, with workload-based write pacing, write pacing is injected at an application level, allowing more than one level of pacing to be active on a single volume at the same time.
Workload-based write pacing uses the importance value on each write I/O to determine the write pacing level to be used in the calculation for how much write pacing delay to inject, if any. The write pacing threshold is used to determine the write pacing step in the same way. To exploit workload-based write pacing, you must enable it on both the application LPAR and the SDM LPAR. On the application LPAR, WLM must be in use. WLM assigns workloads to service classes with the associated importance levels. For information about setting up WLM, refer to z/OS MVS Planning: Workload Management.
The WorkloadWritePacing parameter has 6 values corresponding to importance values 1-5 and a discretionary importance value (0). Importance value 1 is the importance value assigned to the SYSTEM service class. Any application that does not have a service class, but is on an LPAR with WLM in use, is assigned to the discretionary importance class. In addition, if XRC is mirroring writes from LPARs that do not support WLM (such as z/Linux or z/VM), or from LPARs that bypass WLM (STORAGESERVERMGT=NO is specified in parnlib member IEAOPTxx), then volume-level pacing is used instead.
Workload-based write pacing changes the behavior of the DVCBLOCK parameter on XADDPAIR and XSET requests.
When workload-based write pacing is in use, XRC automatically converts DVCBLOCK(ON) to DVCBLOCK(WPn), where n is the discretionary level, 6.
The value specified with WrtPacingResidualCnt in the XRC parmlib values is used as the threshold, rather than the value for DeviceBlockingThreshold. Refer to ANTXIN00 parmlib parameters for more information.
For details of DVCBLOCK and workload-based write pacing, refer to Table 1.
DVCBLOCK Value | Workload-based Write Pacing | Result |
---|---|---|
DVCBLOCK(ON) | Enabled in parmlib and all requirements are met | DVCBLOCK(WP6), application level pacing |
DVCBLOCK(ON) | Enabled in parmlib, WLM disabled or not supported, controller capable | DVCBLOCK(WP6), volume level pacing at discretionary level |
DVCBLOCK(ON) | Enabled in parmlib, controller incapable | DVCBLOCK(ON), volume device blocking |
DVCBLOCK(ON) | Not enabled in parmlib | DVCBLOCK(ON), volume device blocking |
DVCBLOCK(WPn) | Enabled in parmlib and all requirements are met | DVCBLOCK(WPn), application level pacing |
DVCBLOCK(WPn) | Enabled in parmlib but requirements not met | DVCBLOCK(WPn), volume level pacing at level n |
DVCBLOCK(WPn) | Not enabled in parmlib | DVCBLOCK(WPn), volume level pacing at level n |
DVCBLOCK(OFF) or DONOTBLOCK | Enabled in parmlib and all requirements are met | Application level pacing |
DVCBLOCK(OFF) or DONOTBLOCK | Enabled in parmlib, WLM disabled or not supported, controller capable | No blocking or pacing of volume |
DVCBLOCK(OFF) or DONOTBLOCK | Enabled in parmlib, controller incapable | No blocking or pacing of volume |
DVCBLOCK(OFF) or DONOTBLOCK | Not enabled in parmlib | No blocking or pacing of volume |
When workload-based write pacing is disabled (with WorkloadWritePacing in parmlib member ANTXIN00), the report reverts to REPORT 002. For more information, refer to Using XRC reports.
To verify whether a controller is capable of workload-based write pacing, use the XQUERY STORAGECONTROL XFEATURES command instead of the XQUERY STORAGECONTROL FEATURES command. For more information, refer to Using XRC reports.