Performance tuning aims to alleviate imbalances in system resources where one resource is underutilized because of constraints introduced by other resources. This section discusses I/O as one of the resources to be balanced. Although the diagnostics that reveal I/O shortcomings belong to the performance management discipline, I/O is discussed here because any corrective measures are usually the responsibility of the data administrator. For a more general discussion, see Chapter 15, "Performance and Capacity Planning."
In the mainframe tradition, the CPU is regarded as the most important part of the system, which must be kept busy whenever work is to be done. The mainframe's I/O subsystem has, therefore, evolved to live up to this demand. On the mainframe, providing paths is inexpensive compared to adding memory or processor capacity, and a skilled mainframe system architect will tend to deliberately overconfigure I/O.
It is also common practice to provide redundant data paths to ensure availability in case a path fails. A welcome side effect of multipathing is an improvement in the average response time for I/O. At the customary path utilization, the probability of finding multiple paths occupied simultaneously is low. z/VM manages the available paths to provide more effective bandwidth to the Linux images. Multipathing can also compensate for a possible performance degradation that might result when multiple images share data.
For newly established systems, you should not need to worry about I/O bottlenecks that are rooted in your system layout. For example, if you consolidate a server farm on a zSeries machine, you will have an idea of the required bandwidth for different components, and multipathing gives you the means of removing bottlenecks you might have had in the server farm.
However, I/O bottlenecks can develop if the load profile of a system changes over time, for example, as you add new Linux images. You will have to discern trend lines on the utilization of your I/O resources. Both z/VM and Linux provide the means to gather the required data. Which operating system is more useful depends on the scope of what you want to assess.
z/VM is better suited for getting summary data on all of the Linux images that run under it, or for summary data for an entire image. From Linux, you can gather data on the absolute I/O usage of individual Linux users in the image, which might be required for accounting purposes. Where a breakdown for individual users is not required but, for example, summary data on an application that runs on the Linux image is of interest, z/VM provides the simpler means of getting the data.
Linux allows you to gather the performance data that you expect from UNIX. In particular, you can use the iostat facility (see Chapter 25, "Systems Management Tools") to gather I/O data for the scope of a particular Linux image. However, while a Linux image can give you useful data for the resources that are dedicated to it, its limited view of shared virtualized resources can be misleading. For example, Linux might indicate a low utilization for a channel path that is actually heavily used by other images.
z/VM is designed to pool and allocate resources. To do so efficiently, z/VM gathers performance data at the virtual and real hardware levels for devices and channel paths. Without incurring a great performance penalty, you can write these data to a log stream for analysis. Getting a comprehensive report on all of the systems in a distributed server farm would require some special software and probably even hardware. A typical Linux-on-the-mainframe environment already includes z/VM with its diagnostic capabilities.
Moreover, z/VM provides the means to take corrective action. Not only can you identify potential bottlenecks, you also can re-allocate resources to alleviate them. For example, you can dedicate a path to a particular image that suffers I/O delays. You can do this from a z/VM terminal without having to go to the machine room to physically make changes to the cabling and even without having to restart any Linux images.