Batch applications are the most-often encountered workload in the IBM mainframe environment. Over the past few decades, custom applications have been written, modified, and patched even as new versions of operating system and vendor software were released, sometimes with major enhancements to make the applications more efficient. However, the older, custom applications haven’t always been able to efficiently leverage the latest enhancements. Large organizations have realized they could significantly reduce their Total Cost of Ownership (TCO) for their batch workload by implementing various enhancements made possible with new releases of IBM mainframe software.
This article shares insights about tuning batch applications as learned at a top financial organization and an approach for analyzing the batch workload. We’ll look at the impact and benefits of tools and programming techniques the financial organization used, some of which can also be used to tune CICS applications.
CPU optimization efforts should ideally start with identification and analysis of the most expensive workloads. This can be done using the most suitable performance management tool available at the installation. Analysis of the data collected can facilitate decisions regarding the approach to follow for optimization. This article primarily focuses on optimization efforts for application programs where source code is available.
Identify High CPU Consumers
To identify high CPU consumers, start by looking at mainframe chargeback (or billing) data, which is usually collated from System Management Facility (SMF) records generated during execution of a workload on the mainframe. If chargeback data isn’t available, then you’ll need to run custom reports from SMF. The next step is to create a list of the most expensive workloads for prioritizing the optimization effort.
Use a Performance Management Tool
Next, use an application performance management tool to identify the most CPU-intensive sections in the program. This step involves working with the mainframe capacity planning or performance group to set up the application programs targeted for optimization. The request would then be queued by the tool or executed immediately if the program is running. After the tool completes its measurement, a performance profile can be generated. You can then analyze it and examine the source code (and compiler listing) to decide on a code remediation strategy for optimizing performance.
Address Code Remediation
Analysis of the performance profile of a program (in conjunction with the source code and compiler listing) is the most important step in CPU optimization efforts. Performance profiles detail where and how CPU time is spent during application program execution. Analyze the information provided and the program logic to come up with optimization recommendations. Figure 1 lists steps to follow in a CPU optimization project.