Introduction
VSE/ESA Version 1 introduced Enterprise Systems Architecture (ESA) to VSE users. ESA functionality provided dramatic improvements in throughput and capacity as well as performance. The evolution of ESA support continues in VSE/ESA Version 2.
New functionality included in VSE/ESA Version 2 includes ...
With word of these improvements, users rush to order VSE/ESA 2.1 expecting the system to perform better than ever before. Yet, after installation we find slower on-line response time and longer batch run times. Then suddenly we remember, increased functionality probably involves increased overhead.
Increased Overhead
How much increased overhead? In an effort to determine the level of increased overhead in VSE/ESA Version 2.1, I wrote a benchmark program that issued selected SVCs 4000 times. The STCK (STore ClocK) instruction was used to calculate the duration of the SVC request.
The following table shows the execution times of the selected SVCs in micro-seconds. The first percentage shown is the increase from the previous version of VSE/ESA. The second percentage is the increase from VSE/ESA 1.3.
GETFLD GETFLD
VSE/ESA Start I/O COMREG MAINTASK ALET
Version SVC 0 SVC 33 SVC 107 SVC 107
1.3 1217 46 14 109
2.1 Std 1335 9% 72 71% 37 164% 145 33%
2.1 TD 1 CPU 1420 6% 16% 143 98% 210% 65 75% 364% 234 61% 114%
2.1 TD 2 CPU 1566 10% 28% 167 16% 263% 84 29% 500% 281 20% 157%
Table 1: CPU Timings
What is Causing Overhead?
Changes to the supervisor entry and exit linkage for processing interupts and SVC requests account for a large portion of the CPU overhead increases.
The following table shows the basic supervisor entry processing for an interrupt or SVC request.
VSE/ESA 1.3 VSE/ESA 2.1
Debug Dispatcher Interface
VSE/PT Debug
VSE Processing ... Vender Interface
VSE/PT
VSE Processing ...
Table 2: Interrupt Processing Sequence
Tuning VSE/ESA 2.1 (or How to Minimize the Overhead)
Tuning POWER
Tuning CICS
Tuning VTAM 4.2
Tuning the Turbo Dispatcher
The amount of time your system spends running non-parallel work units is critical to effective use of multiple CPUs. Typical examples of non-parallel work units are most system services and key 0 programs (such as VSE supervisor services, POWER and VTAM). While VSE may be able to support up to 10 CPUs, only one CPU can process non-parallel work units at a time. Vendor products tend to make extensive use of Key 0 programming increasing the amount of non-parallel work units that must be run.
Another problem with non-parallel work is the difference between a task that is 83 bound waiting-to-run parallel and a task that is 83 bound waiting-to-run non-parallel. The task 83 bound waiting-to-run non-parallel is experiencing what I call non-parallel work elongation. Because only one CPU may run non-parallel work at a time, when two (or more) tasks require non-parallel work at the same time, one (or more) tasks must wait. The effective duration of the waiting task's non-parallel work is really the wait time plus the CPU time required to complete the work. This problem can severely limit effective use of multiple CPUs.
The best way to decrease the number of non-parallel work units is to reduce the number of I/O operations and supervisor service requests (SVCs). Sounds easy, right?
The I/O Bottleneck
With the changes to VSE/ESA 2.1's SVC and interupt processing routines, I/O becomes a bigger bottleneck than ever before. Less CPU is used to cache an I/O request than to actually perform the I/O operation. In addition, caching the I/O request requires only one non-parallel work unit. Actually performing the I/O operation requires at least three (and maybe more) non-parallel work units. Caching usually reduces the number of I/O operations by 35-65%, so the non-parallel work unit and CPU savings add up.
MDCACHE is built-in to VM/ESA 1.2.2 (and higher) and provides good basic track caching features. MDCACHE stores data in VM/ESA's Dynamic Storage Area (DSA) and attempts to balance its use of storage at the expense of system paging. For CMS guest machines, this is an effective method of caching. However, for VSE guest machines, use of MDCACHE does not eliminate the I/O operation. While MDCACHE may reduce a job's run time, CPU time may actually increase. OPTI-CACHE eliminates the I/O operation reducing CPU usage and VM interaction overhead. OPTI-CACHE also understands VSE access methods allowing multi-track read-ahead to improve performance even more.
While MDCACHE is the only effective way to cache VSAM Share Options(4 4) datasets (that is, datasets being updated on multiple VSE systems at the same time) MDCACHE is not available to VSE systems running native or to VM/ESA VSE guest systems using dedicated DASD. Dedicated DASD is very common to VSE systems running as V=R high performance preferred guests. Also, remember MDCACHE will not cache FBA devices that do not start and end with a block number divisible by 8 (page aligned).
The following Tables show the results of a series LIBR TEST commands issued to a 20 cylinder 3380 library. The tests were run on a PC Server 500 System/390 under various versions of VSE/ESA in a V=V VM/ESA 1.2.2 virtual machine. The LIBR TEST commands issued 12810 I/O requests. When OPTI-CACHE or MDCACHE was used no actual I/O was performed, all data was retrieved from cache.
The Tables show the duration and the amount of CPU time as reported by VSE's job accounting and VM's Q TIME output used by the commands. The percentages shown are the calculated increase or decrease in duration and CPU time.
No Caching OPTI-CACHE MDCACHE
Duration 135.9 Secs 16.4 (-88%) 25.3 (-81%)
JA CPU 10.19 13.22 9.65
Overhead 2.09 0.05 2.05
Total 12.28 13.27 (+8%) 11.70 (-4%)
VM CPU 14.69 14.23 13.73
CP CPU 17.42 0.22 10.27
Total 32.11 14.45 (-55%) 24.00 (-25%)
Table 3: Results under VSE/ESA 1.3
No Caching OPTI-CACHE MDCACHE
Duration 142.5 Secs 16.3 (-88%) 27.3 (-80%)
JA CPU 12.62 14.16 11.78
Overhead 2.97 0.12 2.73
Total 15.59 14.28 (-8%) 14.51 (-6%)
VM CPU 18.06 14.73 16.05
CP CPU 17.49 0.24 10.29
Total 35.55 14.97 (-57%) 26.34 (-25%)
Table 4: Results under VSE/ESA 2.1 Standard Dispatcher
No Caching OPTI-CACHE MDCACHE
Duration 148.2 Secs 22.8 (-84%) 35.9 (-77%)
JA CPU 13.76 14.67 13.32
Overhead 6.34 2.27 4.97
Total 20.10 17.07 (-15%) 18.29 (-9%)
VM CPU 23.41 17.46 19.93
CP CPU 17.37 0.27 10.24
Total 40.78 17.73 (-56%) 30.07 (-26%)
Table 5: Results under VSE/ESA 2.1 Turbo w/1 CPU
No Caching OPTI-CACHE MDCACHE
Duration 159.7 Secs 24.0 (-84%) 47.2 (-70%)
JA CPU 14.58 15.27 14.70
Overhead 7.93 3.07 4.17
Total 22.51 18.34 (-18%) 18.87 (-16%)
VM CPU 27.78 18.94 22.43
CP CPU 17.96 0.34 14.20
Total 45.74 19.28 (-57%) 36.63 (-19%)
Table 6: Results under VSE/ESA 2.1 Turbo w/2 CPUs
Some obvious conclusions are:
Converting to VSE/ESA 2.1
Table 7 shows the increase in CPU time used by the LIBR TEST commands as reported by VSE's job accounting and VM's Q TIME output when converting from one version of VSE/ESA to another. Comparison of these times yields some interesting results.
Converting VSE CPU VM CPU From To Change Change VSE/ESA 1.3 VSE/ESA 2.1 STD +27% +10% VSE/ESA 1.3 VSE/ESA 2.1 TD (1 CPU) +63% +27% VSE/ESA 1.3 VSE/ESA 2.1 TD (2 CPU) +84% +42% VSE/ESA 2.1 STD VSE/ESA 2.1 TD (1 CPU) +28% +14% VSE/ESA 2.1 STD VSE/ESA 2.1 TD (2 CPU) +44% +28% VSE/ESA 2.1 TD VSE/ESA 2.1 TD (2 CPU) +12% +12%
Table 7: CPU Increase Calculations
Results generated by using LIBR TEST commands probably represent a worst case scenario for calcuating increased overhead when converting from VSE/ESA 1.3 to VSE/ESA 2.1.
CPU time of the LIBR TEST commands showed overhead increasing by 27-84% (as reported by VSE's job accounting). Running a more typical mix of CPU bound and I/O intensive jobs, expect an average increase of 10-25%.
Moral of the Story
VSE/ESA Version 2.1 continues the evolution of VSE into the world of Enterprise Systems Architecture (ESA). The new N-Way Turbo dispatcher combines with new Client/Server features to position VSE/ESA as a super server in our new network centric world.
Yet, as with all new functionality, there is a cost involved. These costs can, however, be controlled and with proper tuning and use of new Data-In-Memory (DIM) technologies (caching) VSE/ESA 2.1 can provide greater capacity and performance than ever before.
(c) Copyright 1996 by Barnard Software, Inc.
All names, products, and services mentioned are the trademarks of their respective organizations.