Front cover zSeries Application on Assist Processor (zAAP)) Implementation Features and benefits of zAAP How to order, set up, and use zAAP Dispatching, RMF, and SMF Paul Rogers Luiz Fadel Fernando Ferreira ibm.com/redbooks International Technical Support Organization zSeries Application Assist Processor (zAAP) Implementation November 2004 SG24-6386-00 Note: Before using this information and the product it supports, read the information in “Notices” on page iii. First Edition (November 2004) This edition applies to Version 1 Release 6 of z/OS (5694-A01), Version 1 Release 6 of z/OS.e (5655-G52), and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright International Business Machines Corporation 2004. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces. © Copyright IBM Corp. 2004. All rights reserved. iii Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Eserver® ibm.com® AIX® CICS® DB2® Domino® ESCON® IBM® IMS™ Language Environment® MVS™ OS/390® Parallel Sysplex® PR/SM™ Processor Resource/Systems Manager™ RACF® Redbooks™ Redbooks (logo) ™ Resource Link™ RMF™ S/390® VisualAge® WebSphere® z/Architecture™ z/OS® z/VM® zSeries® The following terms are trademarks of other companies: Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, and service names may be trademarks or service marks of others. iv zSeries Application Assist Processor (zAAP) Implementation Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Chapter 1. zSeries Application Assist Processor (zAAP) . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Processing units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 zAAP introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 zAAP benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Hardware requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4.1 Adding zAAPs to a configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.2 Processor pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5.1 z/OS V1R6 support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5.2 Java on z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5.3 WebSphere on z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5.4 z/OS added values and efficiency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5.5 Legacy integration and infrastructure simplification . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.6 DB2 stored procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5.7 CICS TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5.8 IMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 zAAP workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6.1 Java execution flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7 zAAP exploitation and Projection Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.1 Eligible subsystems for zAAP exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.2 Projection tool output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.3 Microsoft® Excel workbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7.4 zAAP Projection Tool workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Chapter 2. How to order and set up zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Ordering zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 IBM eServer zSeries 990 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 IBM eServer zSeries 890 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Rules and restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Processor definition panel changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 HMC processor selection panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 HMC CP Work Area panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Software setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 18 18 18 18 19 19 20 22 23 Chapter 3. Using zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 How to define JVM options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 zAAP-related options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Other products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Measuring zAAP utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 SMF recording for zAAP usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 26 26 27 29 30 © Copyright IBM Corp. 2004. All rights reserved. v 3.4 RMF reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 SMF records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Monitor I - CPU and logical partition data reporting . . . . . . . . . . . . . . . . . . . . . . . 3.4.3 Monitor III SYSINFO report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Operator commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Additional information on zAAPs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 31 34 36 36 Chapter 4. Performance considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Workload Manager and zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Externals to control dispatching on zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 LPAR capping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 zAAP using and delay samples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Calculation of service times and service units . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Support of IFAs with different speed than regular CPs . . . . . . . . . . . . . . . . . . . . . 4.2.3 Starting WLM server address spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4 LPAR management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.5 Defined capacity and four hour rolling average. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 LPAR weight for zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Using weights for LPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Capacity planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Using the Projection Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.2 Current tool measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38 38 39 39 40 41 41 41 41 41 42 43 43 44 Appendix A. Environment description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 48 48 48 Appendix B. SMF records for zAAP processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1 SMF records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.1 SMF record changes to support zAAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.2 Overview processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 50 50 52 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 53 53 53 53 53 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 vi zSeries Application Assist Processor (zAAP) Implementation Preface This IBM Redbook gives a broad understanding of a new architecture facility available on zSeries® servers called zSeries Application Assist Processor (zAAP). The zAAP is an attractively priced specialized processing unit that provides an economical Java™ execution environment for customers who desire the traditional Qualities of Service and the integration advantages of the zSeries platform. The objective of this book is to help you better understand the functions available with zAAPs as well as how to install, tailor, and configure the new processors. The team that wrote this redbook This redbook was produced by a team of specialists from around the world working at the International Technical Support Organization, Poughkeepsie Center. Paul Rogers is a Consulting IT Specialist at the International Technical Support Organization, Poughkeepsie Center. He writes extensively and teaches IBM classes worldwide on various aspects of z/OS®, JES3, and z/OS UNIX®. Before joining the ITSO 16 years ago, Paul worked in the IBM Installation Support Center (ISC) in Greenford, England providing OS/390® and JES support for IBM EMEA and the Washington Systems Center in Gaithersburg, Maryland. Luiz Fadel is a Distinguished Engineer working for IBM Brazil. He has over 30 years of experience in S/390® and zSeries platform. He is responsible for supporting most zSeries customers in Latin America. He has contributed extensively to several redbooks. Luiz worked in the ITSO from 1977 through 1980 and from 1988 through 1991. Fernando Ferreira is a Certified Consultant IT Specialist working for IBM in Brazil. He has 17 years of experience in zSeries platform. Before joining IBM in 1996 he worked for nine years at an IBM account, the first seven as an MVS™ system programmer and the remaining two as the technical support manager. His areas of expertise include WebSphere® on zSeries (z/OS and zLinux), zOS, UNIX System Services, and RACF®. He is an author of several other redbooks. Thanks to the following people for their contributions to this project: Robert Rogers z/OS Designer, Poughkeepsie NY Peter Relson MVS Designer. Poughkeepsie NY Bernard Pierce Java Performance, Poughkeepsie NY © Copyright IBM Corp. 2004. All rights reserved. vii Become a published author Join us for a two- to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You'll team with IBM technical professionals, Business Partners and/or customers. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you'll develop a network of contacts in IBM development labs, and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Comments welcome Your comments are important to us! We want our Redbooks™ to be as helpful as possible. Send us your comments about this or other Redbooks in one of the following ways: Use the online Contact us review redbook form found at: ibm.com/redbooks Send your comments in an email to: redbook@us.ibm.com Mail your comments to: IBM® Corporation, International Technical Support Organization Dept. HYJ Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400 viii zSeries Application Assist Processor (zAAP) Implementation 1 Chapter 1. zSeries Application Assist Processor (zAAP) This chapter describes the new IBM zSeries Application Assist Processor (zAAP), which can be configured on the IBM zSeries 990 (z990) and zSeries 890 (z890) servers. The zAAP is an attractively priced specialized processing unit that provides an economical Java execution environment for customers who desire the traditional Qualities of Service and the integration advantages of the zSeries platform. In this chapter we introduce the following topics: zSeries processing units (PUs) zAAP introduction Benefits of zAAPs Hardware requirements Software requirements zAAP workflow © Copyright IBM Corp. 2004. All rights reserved. 1 1.1 Processing units As illustrated in Figure 1-1 on page 3, the types of processing units (PUs) that can be characterized (enabled or assigned) on a zSeries processor are: Central processors (CPs) A central processor is a PU that has the z/Architecture™ and ESA/390 instruction sets. It can run z/Architecture, ESA/390, Linux®, TPF operating systems, the Coupling Facility Control Code (CFCC), and Java code, as shown in Figure 1-1. The z990 processors operate only in LPAR mode; consequently, CPs can be dedicated to a partition or shared between partitions. Reserved CPs can also be defined to a logical partition, to allow for non-disruptive image upgrades. All CPs within a configuration are grouped into a CP pool. Any z/Architecture or ESA/390 operating system can run on CPs that were assigned from the CP pool. Integrated Facility for Linux (IFL) An IFL, or Integrated Facility for Linux, provides additional processing capacity exclusively for Linux workloads. A processing unit (PU) characterized as an IFL is often referred to as an IFL “engine.” Several important characteristics of an IFL processing unit or engine are the following: – It is not meant to run anything except Linux or Linux under z/VM® Version 4 and subsequent versions. CMS may also be used under z/VM. The principle is that CMS is needed to manage z/VM, and the primary purpose of z/VM in this case is to host Linux guests. However, most licensed software products for z/VM cannot be licensed to run in an IFL. – Several PUs may be characterized as IFL processors. – The IFL PUs may be spread among LPARs used for Linux in any desired manner. For example, you might have one IFL PU running three Linux LPARs; or you might dedicate one IFL PU to a particular Linux LPAR and share another IFL PU among four more Linux LPARs. – You cannot use standard S/390 PUs and IFL PUs in the same LPAR. – Linux LPARs are standard LPARs, created by a RESOURCE keyword in the IOCDS and marked Linux only in the Image LPAR activation profile. Internal Coupling Facility (ICF) An ICF, or Internal Coupling Facility, provides additional processing capacity exclusively for the execution of the Coupling Facility Control Code (CFCC) in a CF LPAR. As with IFLs, traditional z/OS software charges are not affected by the additional ICF processing capacity. A processing unit characterized as an ICF is often referred to as an ICF engine. Functionally, the ICF is a PU engine which is configured to execute in a CF LPAR. As a result of this behavior, software license charges are not applicable to ICF PUs. System Assisted Processors (SAPs) A System Assist Processor (SAP) is a PU that runs the channel subsystem Licensed Internal Code to control I/O operations. All SAPs in a z990 configuration are implemented as Master SAPs. Integrated Facility for Application processor (IFA) The IFA, also known as the IBM zSeries Application Assist Processor (zAAP), is available on the IBM eServer zSeries 990 (z990) and zSeries 890 (z890) servers. It is an attractively priced specialized processing unit that provides a strategic z/OS Java execution environment for customers who desire the powerful integration advantages and traditional Qualities of Service of the zSeries platform. 2 zSeries Application Assist Processor (zAAP) Implementation Note: Conceptually, zAAPs are very similar to a System Assist Processor (SAP); they cannot execute an Initial Program Load and can only assist the general purpose CPs in the execution of Java programming under control of the IBM JVM. However, unlike standard CPs, ICFs, and IFLs, zAAPs can do nothing on their own. For this reason, IBM does not impose software charges on zAAP capacity. z/OS z/OS z/OS** Java processing cycles LPAR 1 LPAR 2 (CP PU) (CP PU) z/VM CMS Linux Linux CFCC Linux Linux (IFA PU) LPAR 3 LPAR 4 LPAR 5 (IFL PU) (ICF PU) (IFL PU) Channel Subsystem (CSS) (SAP PUs) z/OS** managed by z/OS, no IPL IFA PU is a zAAP Figure 1-1 Processing units (CPs, IFLs, ICFs, SAPs, and zAAPs) 1.2 zAAP introduction In the e-business on demand era, business requirements change more frequently than ever. To stay current and competitive, businesses are developing new strategic Web-based applications. Java adoption continues to accelerate as an open programming model, but these applications typically require more IT resources than traditional applications due to levels of abstraction, code generation, and reuse. Unfortunately, IT budgets are not keeping pace with these needs, forcing customers to seek more cost effective and productive ways of deploying new Java technology-based applications. The zAAP optional assist feature allows customers to purchase additional processing power exclusively for Java application execution without affecting the total MSU rating or machine model designation. zAAPs are designed to operate asynchronously with the general CPs to execute Java programming under control of the IBM Java Virtual Machine (JVM). This is an important point because zAAPs can only help execute Java applications and application servers that use the IBM JVM. The IBM JVM processing cycles can be executed on the configured zAAPs with no modifications to the Java applications. Chapter 1. zSeries Application Assist Processor (zAAP) 3 1.3 zAAP benefits zAAPs enable customers to: Simplify and reduce server infrastructures by integrating e-business Java Web applications next to mission critical data for high performance, reliability, availability, and security. Maximize the value of their zSeries investment through increased system productivity, achieved by reducing the demands and capacity requirements on general purpose processors, which can then be available for reallocation to other zSeries workloads. Lower the overall cost of computing for WebSphere Application Server and other Java technology-based applications through hardware, software, and maintenance savings. When configured with general purpose processors within logical partitions running z/OS (or z/OS.e), zAAPs can help increase general purpose processor productivity and may contribute to lowering the overall cost of computing for z/OS Java technology-based applications. Execution of the JVM processing cycles on a zAAP is a function of the IBM Software Developers Kit (SDK) for z/OS, Java 2 Technology Edition V1.4, z/OS (or z/OS.e) V1R6, and the Processor Resource/Systems Manager™ (PR/SM™). The amount of general purpose processor savings will vary based on the amount of Java application code executed by one or more zAAPs. This is dependent on the amount of Java cycles used by the relevant applications and on the zAAP execution mode selected by the customer. Execution of the Java applications on zAAPs, within the same z/OS LPAR as their associated database subsystems, can also help simplify the server infrastructures and improve operational efficiencies. For example, use of zAAPs could reduce the number of TCP/IP programming stacks, firewalls, and physical interconnections (and their associated processing latencies) that might otherwise be required when the application servers and their database servers are deployed on separate physical server platforms. 1.4 Hardware requirements On a z990, the zSeries Application Assist Processor is a PU that is used exclusively for running Java application workloads under z/OS. One CP must be installed with or prior to any zAAP being installed. The number of zAAPs in a machine cannot exceed the number of CPs plus unassigned CPs in that machine. Within the capacity of the sum of all unassigned PUs in up to four books, up to 16 zAAPs can be characterized, depending on the z990 model (see Figure 1-2 on page 5). Up to four zAAPs can be characterized per installed book. You need an IBM 2084 model D32 with a total of 16 assigned and unassigned CPs to characterize 16 zAAPs. Note: See Figure 1-2 on page 5 for the possible zAAP configurations for the z990. z890 zAAPs When running standard CPs on the z890 server, there are a wide variety of speeds or MSU ratings available. The zAAPs on a z890 server, however, are always run at full speed. If you have a workload that is heavy in Java execution, you could run that workload on a z890 on lower speed standard CPs, along with zAAPs, which would provide significant capacity at a lower cost. In addition, if your workload fits into the terms and conditions of the z/OS.e V1R6 4 zSeries Application Assist Processor (zAAP) Implementation offering, then running that workload under z/OS.e V1R6 on a z890 with zAAPs provides an even more cost-effective server. On the z890, the zAAP is a PU that is used exclusively for running Java application workloads under z/OS. One CP must be installed with or prior to any zAAP being installed. The number of zAAPs in a machine cannot exceed the number of CPs in that machine. This allows the following combinations of CPs and zAAPs, if no IFLs or ICFs are present: One zAAP may be purchased for one-way z890 capacity settings (110 to 170). Two zAAPs may be purchased for two-way z890 capacity settings (210 to 270). One zAAP may be purchased for three-way z890 capacity settings. There are no available Processor Units (PUs) for purchase as zAAPs on four-way z890 capacity settings (410 to 470). Note: See Figure 1-2 for the possible zAAP configurations. z990 Max #zAAPs Max per LPAR CP+zAAP z890 Max #zAAPs Max per LPAR CP+zAAP A08 4 4+4 1xx 1 1+1 B16 8 8+8 2xx 2 2+2 C24 12 12+12 3xx 1 3+1 D32 16 Any combination up to 24 4xx 0 4+0 On the z890, the zAAP is a full speed engine Figure 1-2 Potential zAAP configurations 1.4.1 Adding zAAPs to a configuration Within the limit of all non-characterized PUs available in the installed configuration, zAAPs can be concurrently added to an existing configuration via: Capacity Upgrade on Demand (CUoD) CUoD for processors can add, concurrently, more CPs, IFLs, ICFs, and zAAPs to a z990 or z890 server by assigning available spare PUs via LIC-CC. Depending on the quantity of the additional CPs, IFLs, ICFs, and zAAPs in the upgrade, one or more additional books may be required and can be concurrently installed before the LIC-CC enablement. Customer Initiated Upgrade (CIU) Customer Initiated Upgrade (CIU) is the capability for the z990 or z890 user to initiate a permanent upgrade for CPs, ICFs, IFLs, zAAPs, and/or memory via the Web, using IBM Resource Link™. CIU is similar to CUoD, but the capacity growth can be added by the customer. The customer also has the ability to unassign previously purchased CPs and Chapter 1. zSeries Application Assist Processor (zAAP) 5 IFL processors via CIU. CIU requires that the CIU Enablement feature (FC 9898) is installed. On/Off Capacity on Demand (On/Off CoD) With On/Off CoD, you can concurrently install temporary zAAP capacity by ordering On/Off CoD Active zAAP features up to the number of current zAAPs that are permanently purchased. Also, the total number of On/Off CoD Active zAAPs plus zAAPs cannot exceed the number of On/Off Active CPs plus the number of CPs plus the number of unassigned CPs on a z990 or z890 server. Restriction: zAAPs cannot be assigned via IBM's Capacity Backup Upgrade (CBU). CBU enables alternative zSeries processors to take over workload from another server if an emergency should occur in another part of your establishment. You can configure your system for CBU by reserving processors on existing systems or planning for additional processors when you are purchasing or upgrading a system. 1.4.2 Processor pool On z990s or z890s, PUs characterized as zAAPs within a configuration are grouped into the ICF/IFL/zAAP processor pool. The ICF/IFL/zAAP processor pool appears on the hardware console as ICF processors. The number of ICFs shown is the sum of IFL, ICF, and zAAP processors characterized on the server. 1.5 Software requirements zAAPs are designed to operate asynchronously with the general CPs to execute Java programming under control of the IBM Java Virtual Machine (JVM). The IBM JVM processing cycles can be executed on the configured zAAPS with no anticipated modifications to the Java applications. In order to exploit a zAAP, the operating system must be migrated to the following levels of software: z/OS V1R6 (or z/OS.e V1R6) The IBM SDK for z/OS Java 2 Technology Edition V1.4 with a PTF for APAR PQ86689 For WebSphere-based Java workloads, WebSphere Version 5.1 or above Attention: For customers planning to run WebSphere Application Server V5 under z/OS on a z890 or z990 server, you can predict the benefits that the zAAP provides on your z890 or z990 prior to migrating to z/OS V1R6. Contact your local IBM or authorized business partner hardware sales specialist for more information. Refer to “Capacity planning” on page 43 for details on the available tools. 1.5.1 z/OS V1R6 support The BCP provides the infrastructure to manage work units on the different types of processors. It recognizes the processor type, and partitions work based on the processor type and whether the work unit is eligible for that type. Java provides the identification mechanism to mark a work unit as “zAAP-eligible” or “not zAAP-eligible.” See “zAAP-related options” on page 26. 6 zSeries Application Assist Processor (zAAP) Implementation 1.5.2 Java on z/OS The implementation of Java on zSeries started in 1996 with a port of the AIX® Java Development Toolkit 1.0.2 to the OS/390 UNIX Systems Services. This was followed by the first fully supported release of JDK 1.1.1 for OS/390 in 1997. Since then several hardware and software implementations were done to avoid platform-related problems and improve performance. Among the enhancements made were the following: Implementation of hardware support for binary IEEE floating point. Code page implementation manages the differences between z/OS architecture and the Java specifications, so while Java uses Unicode internally it is only converted to EBCDIC when the data is externalized. This provides the following benefits: – It enables software products, like DB2® for z/OS for example, to handle Unicode data. – It enables WebSphere V5 to handle data in both Unicode and ASCII. Extension of the IBM development kit to make use of mainframe facilities, such as adding interfaces to support the association of an identity or “userid” with the requests to access resources. Java Development Kit (JDK) The latest release of IBM is Java Development Kit, now called IBM Software Development Kit (SDK) for z/OS, Java 2 Technology Edition V1.4, introduces persistent reusable Java Virtual Machines (JVMs).This technology decreases transaction startup time by creating a common system heap of system classes and other sharable classes. This heap is created at subsystem startup time, and is then shared across all JVMs running in that subsystem. Each transaction running in this subsystem has its own JVM, which ensures isolation between transactions. However, when a transaction completes, the JVM is not destroyed but waits to be reused by the next transaction. By minimizing the startup cost by sharing system resources and reusing JVMs, Java technology is reaping the benefits of the mainframe platform. Figure 1-3 illustrates JDK performance improvements across several releases of JDK. Evolution: Multi-threaded Java Performance JDK 1.3.1 - improved JIT and garbage collection (only 1 thread, could not keep up) Relative Transaction Rate z900T-16 Way 141 JDK 1.4.0 - high performance linkage and more JIT improvements 140 131 130 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 JDK 1.4.1 - improved allocation, reusable JVM and more JIT improvements 32 Threads Figure 1-3 JDK performance improvements Chapter 1. zSeries Application Assist Processor (zAAP) 7 1.5.3 WebSphere on z/OS In June 1998, IBM published the IBM WebSphere Strategy. It starts with a Java application server plug-in called ServletExpress shipped with Domino® Go Webserver 5.0. WebSphere versions 1.1, 1.2, 3.02, and 3.5 came later, all of them working as HTTP Server plug-ins. In October 2001, WebSphere V4.0.1 for OS/390 and z/OS became available. It was no longer an HTTP Server plug-in, but a subsystem with its own infrastructure, providing a Java 2 Enterprise Edition (J2EE) technology-based application platform. With WebSphere Application Server for z/OS V5, IBM provides not only a comprehensive, sophisticated Java 2 Enterprise Edition (J2EE) platform, but a compliant Web services application server functionally equivalent to the programming model of the WebSphere Application Server Network Deployment. This allows for greater flexibility in development and simplified management capabilities, specifically designed to utilize the unique qualities of service provided by IBM zSeries hardware and the z/OS operating system. IBM WebSphere Application Server for z/OS includes the robust, enterprise level capabilities for workload management, availability, and scalability. WebSphere V5.1 WebSphere V5.1 announced in May 2004 includes improvements in Web services interoperability and security, and systems management and support for the Software Development Kit for Java Technology Edition 1.4 (SDK 1.4) client container. That makes WebSphere Application Server V5.1 one of the key workloads that could take advantage of using zAAPs. WebSphere Application Server for z/OS V5.1 is designed to help improve your ability to leverage your assets. Features such as Access Intent, Optimistic Concurrency, and In-Memory Replication of Session State may help to lower costs. The outstanding Quality of Service and added value stands on the use of resource capabilities inherent to the z/OS operating system. 1.5.4 z/OS added values and efficiency The z/OS exploitation of zAAP capabilities provides for the following added values: Maximizing people and system resources. A much fuller utilization of existing capacity. With z/OS WebSphere, the efficiency of exploiting the use of the z/OS Workload Manager (WLM). WLM offers much more than sophisticated work routing, which is usually what is referred to as distributed WLM. It can manage resources towards achievement of business goals. It has the ability to guarantee service levels for specific types of customers and workloads as defined by business needs. Server resources are automatically shared among a variety of workloads. Automatic resource allocation crosses z/OS images and physical servers. It has knowledge of the relative weights of a given operating system image. Work can then be differentiated and prioritized across a Parallel Sysplex® environment based on service level requirements. 8 zSeries Application Assist Processor (zAAP) Implementation REQUEST Network Workload Manager CICS IMS DB2 Directory WAS Servers Locks Cache Replication of servers for scale and availability Dynamic activation and balancing Optimized attachment to existing resources Single system, server, object image Consistent control of shared information CICS IMS DB2 Directory WAS Servers Locks Cache Network services Sysplex services z/OS z/OS Coupling Facility Figure 1-4 View of a z/OS sysplex environment System availability The goal is to consistently deliver expected service regardless of unanticipated workload spikes or failures. z/OS architecture is designed to support a failure in some of its components without affecting the others. That means that a zSeries server can survive a CP failure without loss of availability of the system and a middleware software subsystem outage can be survived without loss of availability of the system. The WebSphere server could support a failure in a application without affecting the other applications. Each servant contains a JVM which is isolated by process boundaries from other servants, and as such can fail independently of other servants in the same scalable server. WebSphere topology can provide a highly available architecture by scaling across multiple machines; however, in other platforms you should plan extra capacity for high availability. On z/OS, extra capacity could be reallocated from tasks with less priority in response to unexpected spikes, or even activated through the CBU feature in case of a disaster. Security is also a prerequisite for high availability and z/OS has the industry’s most stringent processes, tools, and techniques for access control and asset protection, maintaining not just the availability but also the integrity of resources. 1.5.5 Legacy integration and infrastructure simplification Integration of Java-based applications executing on zAAPs within the same z/OS LPAR as their associated database subsystems can help simplify server infrastructures and reduce Chapter 1. zSeries Application Assist Processor (zAAP) 9 associated processing latencies that would otherwise be required when the application servers and their database servers are deployed on separate physical server platforms. These advantages come not only from elimination of TCPIP and the associated latency, but also from tight security integration. WebSphere on z/OS is better at serving J2EE applications that need access to data and applications from DB2, MQ, IMS™, and CICS® than a J2EE application server on a different platform accessing those resources and applications remotely. IBM has made a significant investment in the connector technology for WebSphere to these z/OS-specific back end environments. These specialized connectors present the J2EE application with the appropriate programming interfaces, JDBC, JMS, and JCA. However, under the covers, the middleware or driver drives to the native layer and utilizes z/OS-specific services exploiting knowledge about the runtime. They are sometimes referred to as type-2 drivers, local- or bindings-mode connectors; and take advantage of the knowledge that the resources are actually localized onto the system image for which the application is co-resident. The connectors enable the operating system and resource managers to coordinate certain parts of a transactional commit scope and to exploit an already-authenticated user ID. Localized connectors also exploit zSeries-specific Inter-Process Communication instructions in the native layer, allowing, for instance, data movement between the WebSphere application and the resource manager to occur through special instructions instead of getting bottlenecked by a given port of a given socket. This allows zSeries proprietary connectors to scale much better than their pure Java counterparts. In some cases, the actual request runs under the thread of the application instead of having to switch threads and processes, avoiding a trip through the operating system’s kernel. This is achieved by instructing the zSeries processor to execute instructions in cross-memory mode. In this mode, the current thread exists in one process and the instruction and data fetch are in another; for example, the application thread is in the WebSphere servant process, and instruction and data fetch from MQ or DB2. 1.5.6 DB2 stored procedure A stored procedure is a program or routine that is invoked via an SQL CALL statement issued from a client program, and executes under the control of the database manager. Parameters can be passed to, and received from, the stored procedure. Stored procedures offer a number of powerful advantages for distributed application development. These include the following; Common business functions can be encapsulated in stored procedures and made universally accessible, promoting code re-use and consistency, and providing support for object-oriented application design. Performance can be significantly improved for distributed applications that require several SQL calls to be made by the client against a remote database. Instead of one trip across the network for each of these calls, they can be combined and executed locally within a stored procedure so only a single trip across the network is needed. This performance improvement can also create subsequent benefits in reducing lock contention. Security can be enhanced since developers are only able to work with the stored procedure input and output parameters, and are prevented from viewing or altering the underlying code that implements the business function. DB2 stored procedures are integrated with and exploit some of the key z/OS scalability and availability features. Stored procedures benefit from z/OS Workload Manager (WLM) functions and capabilities, allowing individual stored procedures to be scheduled according to 10 zSeries Application Assist Processor (zAAP) Implementation their business priority and optimized for the system workload. In addition, multiple WLM-controlled address spaces for DB2 stored procedures provide improved program isolation. DB2 stored procedures can be written in a number of languages including Java. That means DB2 can take advantage of zAAPs when running Java stored procedures. 1.5.7 CICS TS CICS TS support for Java code running inside its environment is available in two ways: Since V1.3, CICS TS provides Java and C++ object-oriented programming interfaces to support access to CICS services previously available only through use of the CICS command-level application programming interface. CICS TS supports the Internet Inter-ORB protocol (IIOP) used by distributed objects for communication. The server-side CICS application has to be written in Java, but it can easily invoke existing or new CICS applications. The client-side application must comply with the CORBA 2.0 specification. It can be written in any programming language and run on any operating system on any hardware platform. A CICS program written in Java can be run under a JVM or compiled to machine code and executed as a Language Environment® (LE) run unit. DB2 can also be accessed from compiled Java programs through the SQLJ interface, which: – Allows a CICS program to be written in Java – Allows a CICS application written in Java to access CICS services – Provides a Java version of the CICS API known as the JCICS class library Since V2.1, CICS TS provides support for EJB session beans. The EJB Container within CICS provides the services required by enterprise beans running within the CICS EJB server. EJB support in CICS can be used to enable Web access to CICS applications with the following approaches: – As a session bean which uses the CICS Connector for CICS TS or the JCICS classes to invoke the existing application. In this scenario, the Web presentation logic for the application can be provided by developing servlets and JSPs which can be deployed within WebSphere on z/OS or on a distributed platform. – Having provided Web access to the application, new functionality can be added, or the existing application can be rewritten to use session beans and JDBC, SQLJ, or Data Access Beans to provide database access. – CICS TS does not provide support for entity beans. However, from CICS, you can access entity beans on any other EJB server that does support them. WebSphere Application Server does support entity beans, and therefore new components can be added to your session beans to invoke entity beans in WebSphere Application Server. One reason why you would run your session beans in CICS and entity beans in WebSphere Application Server is that CICS is optimized to run pseudo-conversational transactions, which are similar to session beans in the EJB model. WebSphere Application Server, however, is optimized for long-lived data objects, which are similar to entity beans in the EJB model. – It may be appropriate for some business objects to be deployed as session beans in WebSphere Application Server. This may be due to specific resource or platform requirements. In this case, these session beans can be part of an application which encapsulates business logic across session beans running in CICS and in WebSphere Application Server. The WebSphere Application Server, in this scenario, may be Chapter 1. zSeries Application Assist Processor (zAAP) 11 running on a distributed platform which has the specific resources required by the CICS application. 1.5.8 IMS The transaction processing strengths of IMS in an enterprise computing environment are appreciated and exploited worldwide. IMS has always provided a robust transaction processing environment that: Allows creation of transactions with atomicity, consistency, isolation, and durability (ACID) properties. Allows transactions to run under all sorts of conditions. Provides continuous operation and high availability with (more recently) sysplex support, data sharing, and the removal of single points of failure. IMS Java allows IMS shops to take advantage of the growing pool of Java-trained programmers. It extends existing IMS transactions to e-business, uses Java with high-performance server solutions, and reduces the complexity of IMS application development. IMS Java was developed to provide an application programming interface that is usable by experienced Java programmers, and to provide an API that can later be supported with code generation tools, such as those found in VisualAge® for Java. IMS Java provides you with the ability to develop new applications more easily. IMS Java also provides Java programmers with complete access to necessary IMS services. IMS Java is delivered in a layered set of class libraries providing high-level classes that focus strongly on ease-of-use, and lower-level classes that provide complete access to IMS services and serve as the implementation vehicle for the higher-level classes. The IMS Java classes allow you to write the following types of applications: Message Processing Programs (MPPs) IMS Fast Path Programs (IFPs) Batch Message Processing Programs (BMPs) 1.6 zAAP workflow When a z/OS logical partition is configured, both CPs and zAAPs are defined as necessary to support the planned Java and non-Java workloads. zAAPs may be configured as initially online or reserved for subsequent use by z/OS as necessary. As previously stated, zAAPs cannot be IPLed, and at least one central processor is required for each z/OS partition. zAAPs may be defined as either shared by other logical partitions or dedicated to a specific partition; however, both central processors and the zAAPs for each partition will have the same shared or dedicated attribute. For a given partition, you cannot define shared central processors and dedicated zAAPs or dedicated central processors and shared zAAPs. PR/SM configures shared zAAPs from the same pool of shared special purpose processors as ICFs and IFLs. Collectively, all shared ICFs, IFLs, and zAAPs will also dynamically share in the processing requirements for all three special purpose processor types as controlled by PR/SM. 1.6.1 Java execution flow Integrated Facility for Applications (IFA) eligible work can run on both IFAs and standard processors. There are options that specify how the Java execution cycles are dispatched. 12 zSeries Application Assist Processor (zAAP) Implementation You can specify that standard processors will not run any IFA-eligible work unless there are no IFAs operational in the partition. You can also prevent IFA-eligible work from running on standard processors because of software licensing considerations. For information on the Java execution options, see 2.4, “Software setup” on page 23. The example in Figure 1-5 shows the execution of a Java unit of work, as follows: Initially the Java code is dispatched on a standard processor (CP) and any other unit of work. Before the Java code gets executed on a Java machine (JVM), JVM signals to the dispatcher the current unit of work is zAAP-eligible work. When the current unit of work releases control it is placed by the dispatcher in the zAAP dispatcher work queue. When a zAAP processor becomes available the dispatcher selects the highest priority work from the zAAP work queue and dispatches it on the zAAP processor. A zAAP-eligible unit of work can be executed on a zAAP (if a zAAP is available). Work executing on the zAAP inherits the dispatching priority from the execution on the regular CP. The Java application code executes on this zAAP (also called an IFA, or Integrated Facility for Application) processor. The MVS dispatcher dispatches the Java code to the zAAP processor unit. When the Java machine finishes processing (the unit of work finishes the execution of the Java code) it signals to the dispatcher that the current unit of work is not eligible for zAAP processing anymore. When the unit of work releases control it is placed in the dispatcher “standard logical processor” work queue. The JVM returns to the WebSphere code running on the standard processor CP. Standard Processor (CP) WebSphere EXECUTE JAVA Code JVM Signaling zAAP work zAAP Processor (IFA) z/OS Dispatcher Dispatch JVM task on zaap logical processor JVM z/OS Dispatcher Suspend JVM Task Placed in zAAP work queue z/OS Dispatcher Dispatch JVM task on z/OS standard logical processor JVM WebSphere JAVA Application Code Executing on a zAAP Logical Processor JVM Signalling CP work Release control z/OS Dispatcher Dispatch JVM task on zaap logical processor Figure 1-5 Java application workflow Chapter 1. zSeries Application Assist Processor (zAAP) 13 1.7 zAAP exploitation and Projection Tool A zAAP Projection Tool for Java 2 Technology Edition, SDK 1.3.1, along with an accompanying Excel Workbook tool for reading, organizing, and analyzing data, allows customers who are considering using zAAPs to learn the potential for Java execution on zAAPs for their existing applications. This tool gathers usage information about how much CPU time is spent executing Java code which could potentially execute on zAAPs. By running a Java workload that is representative of the production system operations, it reports, via the Java log, how much of that workload could be eligible for execution on zAAPs. This information is also useful in predicting the number of zAAPs that might be necessary in order to provide an optimum zAAP configuration. Note: See “Capacity planning” on page 43 for more information on the use of the Projection Tool. 1.7.1 Eligible subsystems for zAAP exploitation Table 1-1 outlines the subsystems and minimum Java level dependencies for determining zAAP Java execution and exploitation potential, or it can be used to determine Java execution potential to use zAAPs. Use the table as follows: The items with a YES in the middle column, while not able to exploit the benefits of zAAPs, show where the zAAP Projection Tool for Java 2 Technology Edition, SDK1.3.1 can be used to assist in zAAP capacity planning. For instance, WebSphere V5.0.2 cannot exploit a zAAP processor, however the zAAP Projection Tool can be used to determine zAAP Java execution potential if the WebSphere workloads were migrated to the required level for zAAP exploitation. The items with a YES in the last column can fully exploit zAAPs with the appropriate PTF level. Table 1-1 lMinimum Java Levels for zAAP exploitation or determining zAAP execution potential Subsystem version zAAP Projection Tool for Java 2 Technology Edition, SDK 1.3.1 - Used to Determine zAAP Java execution potential WAS 5.0.2 YES WAS 5.1 IBM SDK for z/OS, Java 2 Technology Edition, V1.4, with PTF for APAR PQ86689 YES IMS V7 YES YES IMS V8 YES YES IMS V9 CICS 2.2 YES YES CICS 2.3 YES DB2 V7 YES YES DB2 V8 YES YES 1.7.2 Projection tool output The tool is designed to create a print line in the STDOUT file every five minutes, as follows: This interval is not related to the RMF™ or SMF intervals. 14 zSeries Application Assist Processor (zAAP) Implementation The time is reported as Java time eligible to execute on the zAAP. The remaining time is identified as standard CP time. In addition, the total CPU time for all TCBs, SRBs and enclaves is reported as address space time. Figure 1-6 is an example of the format and contents of this print line. The key fields of interest for performance analysis, which are highlighted in this figure, are the following: Switches To/From IFA: State changes in processing of zAAP-eligible work versus not eligible work for all Java threads in the JVM Java IFA: Time accumulated for Java threads processing zAAP-eligible work Java Standard CPU: Time accumulated for Java threads processing zAAP non-eligible work Interval address space CPU: Time for all work in the address space across all disbatchable units, including the Java threads IFA Projection data for system id=<SYSD.50594238> Starting at: 18:31:30- Current address space CPU: 0.008068 sec. <SYSD.50594238> Interval at: 18:36:30 Switches To/From IFA: 3717251 Java IFA: 99.3 sec. Java Standard CPU 101.86 sec. Interval address space CPU: 208.66 sec. <SYSD.50594238> Interval at: 18:41:30 Switches To/From IFA: 3903114 Java IFA: 104.27 sec. Java Standard CPU 106.95 sec. Interval address space CPU: 219.09 sec. <SYSD.50594238> Interval at: 18:46:30 Switches To/From IFA: 4176332 Java IFA: 111.57 sec. Java Standard CPU 114.44 sec. Interval address space CPU: 234.43 sec. <SYSD.50594238> Interval at: 18:51:30 Switches To/From IFA: 3842225 Java IFA: 102.64 sec. Java Standard CPU 105.28 sec. Interval address space CPU: 215.68 sec. <SYSD.50594238> TOTAL at: 18:51:30 Switches To/From IFA: 15638922 Java IFA: 418 sec. Java Standard CPU 429 sec. Total address space CPU: 878 sec. Figure 1-6 Output from the projection tool 1.7.3 Microsoft® Excel workbook A Microsoft Excel workbook is available, with associated programming, that processes the output shown in Figure 1-6 and stores the zAAP processing information in a spreadsheet. The workbook can help a capacity planner to manipulate the data in the spreadsheet. Figure 1-7 is a sample of the contents of the spreadsheet after execution within the workbook. SMF Instance RMF name or Group interval start SYSD SYSD SYSD SYSD test1 test1 test1 test1 18:31:00 18:36:00 18:41:00 18:46:00 zAAP CP Service Class 99 104 112 103 Space 102 107 114 105 newwork 209 219 234 216 %Time zAAP% zAAP engine eligible eligible 48% 48% 48% 48% all LPARS 33% 35% 37% 34% Other Java% engine 34% 36% 38% 35% Appl% zAAP% engine w/capt ratio 70% 73% 78% 72% 85% 39% 41% 44% 40% ZAAPs w/wait 75% 52% 55% 58% 54% Figure 1-7 Contents of a spreadsheet following processing in Excel workbook Chapter 1. zSeries Application Assist Processor (zAAP) 15 1.7.4 zAAP Projection Tool workbook The zAAP Projection Tool workbook can be downloaded from the same Web site as the zAAP Projection Tool. This site is: www6.software.ibm.com/dl/zosjava2/zosjava2-p The Projection Tool workbook is capable of doing the following: Combining data from multiple JVMs Collecting seconds of zAAP-eligible processing, non zAAP-eligible (standard CP) processing, and total address space time for the Java spaces. Combining data from multiple address spaces, service classes and LPARs. Combining the data and aligning it to intervals such as the RMF interval used. Adjusting zAAP utilization factoring in z/OS capture ratios. Expressing zAAP and standard CP time as a percent of the engine (single CP) that the data was collected on. This can be used as input to the projected number of zAAPs needed, factoring in a target maximum utilization to ensure workload responsiveness. 16 zSeries Application Assist Processor (zAAP) Implementation 2 Chapter 2. How to order and set up zAAPs In this chapter we describe the following: Ordering zAAPs Rules and restrictions Hardware setup Software setup © Copyright IBM Corp. 2004. All rights reserved. 17 2.1 Ordering zAAPs zAAPs can be ordered for zSeries models z990 and z890. In both cases the number of zAAPs must not exceed the number of standard CPs, including unassigned CPs, on a given machine. The zAAPs can be ordered for a zSeries processor as follows: z990 (by Feature Code 0520) z890 (by Feature Code 6520) zAAPs became generally available on June 30th, 2004. However, in order to exploit the zAAP on a z990 or z890 (and future) servers, the operating system must be migrated to z/OS V1R6 that is shipped with JVM SDK 1.4.1 and has been available since September 2004. In addition, for WebSphere-based Java, WebSphere Version 5.1 or greater is required. Note: IBM does not impose software charges on zAAP capacity. Additional IBM software charges will apply when additional general purpose CP capacity is used. 2.1.1 IBM eServer zSeries 990 You may order zAAPs up to the number of permanently purchased CPs, (including unassigned CPs), on a given machine model. The number of zAAPs ordered may not exceed the limit of available engines in the machine model. For a z990 D32, for example, the maximum number of zAAPs you can order is 16. Using the 1 to 1 ratio for planning to use zAAPs on a machine model, one CP must be installed with or prior to any zAAPs being installed. 2.1.2 IBM eServer zSeries 890 You may purchase zAAPs for the z890 as follows: One zAAP for one-way z890 capacity settings (110 to 170) Two zAAPs for two-way z890 capacity settings (210 to 270) One zAAP for three-way z890 capacity settings There are no available Processor Units (PUs) for purchase as zAAPs for four-way z890 capacity settings (410 to 470) It is possible to concurrently install temporary capacity by ordering On/Off CoD Active zAAPs up to the number of zAAPs, with the restriction that the total number of On/Off CoD Active zAAPs plus zAAPs cannot exceed the total number of On/Off CoD Active CPs plus CPs plus unassigned CPs. 2.2 Rules and restrictions Following are the rules and restrictions that apply to zAAP usage: You must have at least one standard CP defined for a logical partition (LPAR). The z/OS system needs at least one standard CP online at all times. You can set the number of zAAPs for an LPAR. 18 zSeries Application Assist Processor (zAAP) Implementation You cannot set the following definitions for zAAPs (because they are inherited from the definitions for the standard CPs): – Whether they are dedicated or shared – Hard capping Note: Although zAAPs uses the same weight value you set up for the standard CPs, you should be aware that the final weight of the zAAPs can be different. For more information refer to “LPAR weight for zAAPs” on page 41. There is no support for soft capping. If you use WLM Weight Management for the LPAR with defined capacity, then z/OS WLM manages shared standard CPs as today, but not the zAAPs. However, zAAPs may be affected by soft capping on CPs. For more information refer to “Capacity planning” on page 43. zAAPs do not participate in Intelligent Resource Director support. The zAAPs do not participate in dynamic share management or in the number of logical zAAPs online. zAAPs are brought online and offline like standard CPs. You cannot IPL a zAAP. No I/O interrupts are processed on a zAAP. No clock comparator interrupts are processed on a zAAP. 2.3 Hardware setup If you have a zSeries server (z990 or z890) and you have Driver Level 55 or above installed, and you have ordered zAAP processors, you can use the activation profile customizing function to define these processors to a partition. The number of zAAP processors you can have in your system configuration cannot exceed the number of CPs configured. In other words, if you have a z990 model 310, the maximum number of zAAPs you can order is 10. Nevertheless, the number of zAAPs you can define to a partition can be greater than the number of CPs. 2.3.1 Processor definition panel changes Figure 2-1 on page 20 shows the changes in the processor definition panel for an ESA/390 partition for which you can define an integrated facility for applications processor (zAAP). You can reach this panel using the Customize/Delete Activation Profiles function within the HMC. This function enables you to create new activation profiles, customize existing profiles, or delete unwanted profiles that are stored in the CPC support element. An activation profile is required for CPC or image activation and defines the IOCDS, storage sizes, and other parameters that are available when the object is activated. Installed zAAPs If integrated facility for application processors (zAAPs) are installed in the CPC, you can assign them to a logical partition; one or more central processors must be assigned; integrated facility for application processors (IFAs) are optional. Note: Hardware and LPAR support is provided that differentiates IFAs from CPs, so you can configure an LPAR with a number of CPs and a number of IFAs. Information about the processor type is conveyed to the software. Chapter 2. How to order and set up zAAPs 19 2.3.2 HMC processor selection panel Figure 2-1 is the Select the Processor panel for the image profile. In this panel you can select the type of processors you want assigned to the logical partition. They can be: Dedicated central processors Dedicated central processors and integrated facility for applications processors Non-dedicated central processors Non-dedicated central processors and integrated facility for applications processors In this example, we selected to not dedicate central processors and integrated facility for applications; furthermore, we configured one CP and two zAAPs (IFAs). Figure 2-1 Customizing image activation profiles for an LPAR with two zAAPs Defining IFAs for an LP If IFAs (zAAPs) are defined for a logical partition, they are defined in the same way as the general purpose CPs for the logical partition. If the general purpose CPs for a logical partition are shared, the IFAs are shared. If the general purpose CPs for a logical partition are dedicated, the IFAs are dedicated. You can use the controls available to complete the logical partition assignment of IFAs. The activation profile you use to activate a logical partition can manage your defined capacity for the logical partition. In our example we assigned a weight of 10 to the partition and we did not enable the Workload Manager control. Keep in mind that this weight is used for both central and zAAP (integrated facility for applications) processors. Refer to 4.3, “LPAR weight for zAAPs” on page 41 for details on how weights are used with zAAPs. 20 zSeries Application Assist Processor (zAAP) Implementation The activation profile you use to activate a logical partition can define the number of initial and reserved processors. Initial processors are the processors made available to the operating system on that logical partition at the time the partition is activated. Reserved processors are processors defined to be used by the operating system when they became available. The reserved processors are usually not available when the system is activated, but can become available during concurrent central processor (CP) upgrade. You can reserve zAAP (integrated facility for applications - IFA) processors prior to installation the same way you reserve central processors. The reserved zAAPs are not available when the system is activated, but can become available during concurrent zAAP upgrade. The maximum number of central processors and zAAPs that is currently supported by z/OS is 24. Note: This is the number of initially defined CPs plus the number of initially defined IFAs plus the number of reserved CPs plus the number of reserved IFAs. Unpredictable results may occur if you exceed 24. HMC Customize Image Profiles panel The fields in the Customize Image Profiles panel shown in Figure 2-1 are defined as follows: Dedicated central processors Select this option if you want the general purpose CPs that are allocated for the LPAR to be dedicated when the LPAR is activated. Dedicated central processors and integrated facility for applications Select this option if you want the general purpose CPs and zAAPs that are allocated for the LPAR to be dedicated when the LPAR is activated. Not dedicated central processors Select this option if you want the general purpose CPs that are allocated for the LPAR to be shared when the LPAR is activated. Not dedicated central processors and integrated facility for applications Select this option if you want the general purpose CPs and zAAPs that are allocated for the LPAR to be shared when the LPAR is activated. – Initial processing weight Enter a value between 1 and 999 to set the processing weight for an LPAR. The default value is 10. – Initial capping Select this option to cap the CP resources for an LPAR. Capping has no effect on LPARs with dedicated CPs. Enable WorkLoad Manager Select this option so that CPU and I/O resources can be managed by WLM using IRD clustering technology. – Minimum processing weight Select this option to establish a minimum processing weight that WLM will allocate to the LPAR. Do not specify a value here unless you determine a true need for it in your configuration. Specifying a value here can needlessly constrain what WLM can do to optimize the management of your workload. – Maximum processing weight Select this option to establish a maximum processing weight that WLM will allocate to Chapter 2. How to order and set up zAAPs 21 this LPAR. Do not specify a value here unless you determine a true need for it in your configuration. Specifying a value here can needlessly constrain what WLM can do to optimize the management of your workload. Number of processors Select the number of initial and reserved general purpose CPs for the LPAR. All initial CPs will be configured online automatically at activation. Reserved CPs can be configured online, when required, using the appropriate control program commands. Number of integrated facility for application Select the number of initial and reserved zAAPs (IFAs) for the LPAR. All initial zAAPs will be configured online automatically at activation. Reserved zAAPs can be configured online, when required, using the appropriate control program commands. 2.3.3 HMC CP Work Area panel Figure 2-2 on page 22 shows the processors defined for our logical partition, named A13; as you can see we have one CP and two IFAs (zAAPs) online. These are the processors that have been defined. Note that processor ID 00 is associated to the normal processor. Processor ids 01 and 02 are associated to IFAs. Figure 2-2 CP Work Area panel for partition A13 zAAPs defined in LPAR A13 Figure 2-3 on page 23 shows the results of a D M=CPU command. Processor ID 00 is online and is the normal CP; processor IDs 01 and 02 are online and they have a A to characterize them as ‘assist processors’ or zAAPs. Notice also that a processor ID is assigned to a zAAP; this means that zAAPs are included in the limit of 24 processors currently supported by z/OS. 22 zSeries Application Assist Processor (zAAP) Implementation Figure 2-3 D M=CPU command showing zAAPs 2.4 Software setup There is no need for software setup to use zAAPs on z/OS V1R6. However there are some parameters you can define to tell the operating system how the zAAP eligible work can be executed. Note: The term IFA often appears in panels, messages, and other z/OS information relating to the zSeries Application Assist Processor. On IEAOPTxx member of SYS1.PARMLIB there are two new parameters to control how z/OS dispatches the zAAP eligible work on zAAPs and standard on standard processors (CPs). These options can be dynamically changed by SET OPT command. IFACrossOver= YES | NO YES YES specifies that zAAP eligible work can run on both zAAPs and standard CP processors. NO NO specifies zAAP eligible work executes only on zAAPs unless there are no operational zAAPs in the partition. You might specify IFACrossOver=NO to prevent zAAP eligible work from running on standard processors because of software licensing considerations. For example, you might specify NO if you are using the Sub Capacity Reporting Tool (SCRT) and you want to minimize the standard CPU utilization by preventing zAAP eligible work from running on standard CPs. In the event that the last zAAP is removed from the configuration, IFACrossOver = NO is ignored so that the zAAP work does not fail or stop running. Chapter 2. How to order and set up zAAPs 23 Note: Garbage collection is a zAAP eligible workload and is directly affected by this parameter. The number of threads used for garbage collection is the same as the number of processors in the LPAR. IFACrossOver=NO forces garbage collection to use only zAAP processors. In this case there is more garbage collector threads than available processors. To setup the number of threads you should use, specify the -Xgcthreads JVM option. For more information about this option, refer to Persistent Reusable Java Virtual Machine User's Guide, SC34-6201 IFAHonorPriority= YES | NO YES WLM manages the priority of zAAP eligible work for CPs. zAAP eligible work is handled by WLM in priority order. Note: Specifying YES does not mean the priorities are always honored. The system manages dispatching priorities based on the goals provided in the WLM service definition. The z/OS dispatcher, when executing on central processors, dispatches the highest priority available work without regard to whether the work is zAAP eligible (just as when zAAPs are not provided). This is the default z/OS behavior and is oriented toward environments where servicing the highest priority work is required regardless of work type. Note: If you use WLM Weight Management for the LPAR with Sub Capacity Report Tool, WLM turns honor priorities to NO when a capacity is limited for the standard logical processors. That it is possible to allow crossover to remain on while managing software costs with VWLC. NO zAAP eligible work can run on CPs but at a priority lower than any non-zAAP work. You might specify IFAHonorPriority=NO if you have plenty of zAAP capacity and do not want standard processors to run zAAP eligible work at priority. In the event that the last zAAP is removed from the configuration, the IFAHonorPriority=NO choice limits the impact of zAAP eligible work running on standard processors. Note: The IFAHonorPrioirty parameter is processed only if you either specify or default to IFACrossOver=YES. If you specify IFAHonorPrioirty and IFACrossOver=NO, the IFAHonorPrioirty parameter is ignored. The z/OS dispatcher, when executing on standard processors, dispatches zAAP eligible work, in priority order, but only when there is no non-zAAP eligible work available to be dispatched. With this option, the zAAP eligible work may execute on standard processors as if it is lower in priority than non-zAAP eligible work. This option might be used for environments where there is insufficient zAAP capacity available and the Java work does not require prioritization over non-Java work executing on the standard processors. Note: There are also JVM initialization options that affects zAAP eligible work. For more information about that refer to “How to define JVM options” on page 26. 24 zSeries Application Assist Processor (zAAP) Implementation 3 Chapter 3. Using zAAPs In this chapter we discuss the following topics: How to define the JVM options Measuring zAAP utilization Operator commands and SDSF © Copyright IBM Corp. 2004. All rights reserved. 25 3.1 How to define JVM options SDK1.4.1 has specific JVM options to handle zAAPs. However, if you are on z/OS V1R6 and want to enable zAAPs on your server, use the defaults. No additional setup is needed. 3.1.1 zAAP-related options These are the options for zAAP processing: -Xifa:on Enables Java work to run on a zAAP if any zAAPs are available. This is the default. Only code written in Java and Java system native code is enabled to run on a zAAP. This design point is achieved in the Java support by requesting a switch to a zAAP for qualifying work and a switch request from a zAAP to a general purpose processor when non-qualifying work is encountered. This option is honored only with z/OS V1R6. -Xifa:off Disable the use of zAAPs. -Xifa:projectn Designed to estimate projected zAAP usage and write this information to STDOUT at intervals of n minutes. A value of 0 indicates that information should only be written when Java terminates. The interval requested is not honored exactly. Messages are written after a switch has been encountered for work that would be considered eligible for off load to a zAAP or returning from that state. As a result, messages may be delayed during idle periods. This option is honored on all versions of z/OS. However, it is intended to be used with versions before z/OS V1R6. z/OS V1R6 has zAAP capacity planning information in SMF and RMF. For more information refer to “Measuring zAAP utilization” on page 29 and “SMF record changes to support zAAPs” on page 50. Important: If assigned on a z/OS V1R6 system, this option disables the use of zAAPs unless you also set option -Xifa:force or -Xifa:on. -Xifa:force Designed to force Java to continue attempting to use zAAPs, even if none are available. This would typically be specified for the purpose of collecting RMF/SMF data to assess potential zAAP use. This option is honored only with z/OS V1R6. For other JVM options see Persistent Reusable Java Virtual Machine User’s Guide, SC34-6201. Setting JVM options in WebSphere To setup JVM options, use the admin console as shown in Figure 3-1 and Figure 3-2 on page 27. Then select the following options: Under Servers, select Application Servers. Click (server-name) → Process Definition (on Additional Properties). Click Control or Servant. Click Java Virtual Machine (on Additional Properties). 26 zSeries Application Assist Processor (zAAP) Implementation Figure 3-1 WebSphere Application Server Administration Console Version 5 panel a. Insert JVM options under “Generic JVM arguments.” Application Servers serv_name Process Definition Servant Java Virtual Machine Advanced JVM settings Generic JVM arguments Figure 3-2 WebSphere Application Server Administration Console Version 5 panel b. Click Apply or OK and save the configuration. 3.2 Other products Like WebSphere, other subsystems such as DB2, CICS, and IMS also provide support for Java in different ways, so they also can exploit the use of zAAP processors. Setting JVM options for DB2 stored procedures For Java routines, the startup procedure for the stored procedure address space contains a JAVAENV DD statement. This statement specifies a data set that contains Language Chapter 3. Using zAAPs 27 Environment run-time options for the routines that run in the stored procedure address space. After you create the data set, edit it to insert a Language Environment options string. Within the environment variables, set the variable JVMPROPS. This environment variable specifies the name of a z/OS UNIX System Services file that contains startup options for the JVM in which the stored procedure runs; an example is presented in Figure 3-3. JVMPROPS=/usr/lpp/java/properties/jvmsp Specify the options you want in this file, for example: # Sets the initial size of middleware heap within non-system heap -Xms64M # Sets the maximum size of nonsystem heap -Xmx128M #Force use of zAAP processors -Xifa:force Figure 3-3 Environment variable JVMPROPS For more information about how to set up environment variables or JVM properties refer to DB2 UDB for z/OS V8 Application Programming Guide and Reference for Java, SC18-7414. Setting JVM options in CICS In your CICS startup job stream there is a DD statement for DDNAME DFHJVM that references the PDS containing the JVM profiles. Programs that require a JVM are specified with JVM(YES) in their PROGRAM resource definition. The following is an example of the DD statement for DFHJVM: //DFHJVM DD DSN=CICSTS22.CICS.XDFHENV,DISP=SHR Note: Do not specify a member name on the data set defined by DFHJVM. CICS obtains the member name from the program resource definition for the Java program that requires the JVM. Specify the JVM profile required for your Java program on the JVMPROFILE attribute of the CICS program resource definition. You can modify the supplied values in the sample JVM profiles using the TSO editor. For JVMs that are not resettable, you can also specify that you want the user-replaceable module DFHJVMAT to be called at JVM initialization, to examine and modify the options. For example, to write IFA projection data each 2 minutes, add the following line: Xservice="-Xproject2" If you want to use a JVM initialization option for some Java programs but not for others, you can create your own JVM profiles based on the sample JVM profiles. Create two identical JVM profiles and make the changes to one of them. Remember to store the JVM profiles as members of a partitioned data set (PDS), and add a DFHJVM DD statement referencing that PDS to the CICS startup JCL. Where you want to use the options you defined for a Java program, specify the JVM profile containing that option on the CICS program resource definition for the program. Where you do not want to use the options, specify the JVM profile that does not include that option. For more information see Java applications in CICS, SC34-6000. 28 zSeries Application Assist Processor (zAAP) Implementation Setting JVM options in IMS To run IMS Java applications in a JMP region, the region must be initialized with specific JVM options. Specify the following parameters: JVMOPMAS=member name It specifies the name of the member in IMS.PROCLIB that contains the JVM options for the master JVM. The master JVM defines the class cache for its associated worker JVMs. A sample member, called DFSJVMMS (master JVM options member), is supplied in the IMS sample library SDFSISRC. DFSJVMMS contains a subset of the possible JVM options. You can also use another file to specify this option. JVMOPWKR=member name An optional parameter specifies the name of the member in IMS.PROCLIB that contains the JVM options for the worker JVM. The worker JVM is created in the same address space as its master JVM. It uses the class cache defined by the master JVM. There is a sample member, called DFSJVMWK (worker JVM options member), supplied in the IMS sample library. DFSJVMWK contains a subset of the possible JVM options. The path name to the IMS V8.1 Java native C code is libJavTDLI.so. If you are using the default IMS Java directory, enter /usr/lpp/ims/imsjava81. For more information refer to IMS V8 IMS Java Guide and Reference, SC27-1296. 3.3 Measuring zAAP utilization z/OS V1R6 provides the ability to run Java applications on the zSeries Application Assist Processor (zAAP), also known as an IFA (Integrated Facility for Applications). RMF uses the term IFA in the affected reports, messages, and in all it’s other publications. RMF provides measurements of zAAP processor activity in the following reports: Postprocessor – CPU Activity report – Partition Data section and its Workload Activity report Monitor III – CPC Capacity report – Enclave report – System information (SYSINFO) report Also, RMF provides new overview conditions based on SMF records 70-1 and 72-3 to assess zAAP processor activity. z/OS V1R6 SMF and RMF have been enhanced to monitor zAAP usage. The same skills you use today for monitoring standard CPs can be used for monitoring zAAPs. There are no zAAP-specific skills required for capacity monitoring. Chapter 3. Using zAAPs 29 3.3.1 SMF recording for zAAP usage SMF type 30 and type 72 records have been enhanced to provide zAAP usage information: SMF 30 reports the amount of standard CP time consumed by the job step and the amount of zAAP-eligible time consumed by the job step executing Java on standard CPs, if any. For SMF 72 records, the amount of time spent executing on zAAP processors is reported, as well as Using and Delay sample counts for zAAP-eligible work. When running the same Java workload with zAAPs as you were running before without zAAPs, you should expect to see less capacity shown in your Sub-Capacity Reporting Tool (SCRT) reports, as well as less capacity used for standard CPs in your RMF reports. If new Java workload has been added, this increases CP usage. Refer to z/OS MVS System Management Facilities (SMF), SA22-7630 for more information on SMF type 30 and type 72 records. Refer to z/OS Resource Measurement Facility User's Guide, SC33-7990 for more information on RMF monitoring. Note: The diagnosis tools and service aids that you use today, for example, SLIP traps and traces, can be used unchanged with zAAPs. 3.4 RMF reports RMF supports zAAPs by extending the CPU Activity, Partition Data and Workload Activity reports in Monitor I and Monitor III. This allows you to assess resource consumption on zAAPs and to determine whether additional zAAPs need to be configured or not. RMF distinguishes between standard CP and zAAP processors where necessary, collects and reports about zAAP service times, and using and delay states for service and report class periods. Note: A zAAP processor is identified as IFA in some documentation, messages, and reports. In all reports where processor activity or delay is measured, or where processor activity and delay influences measuring the workflow of a job, RMF includes zAAP processor activity into those measurements without changing the layout of the affected reports. Also, new overview conditions are available with which customers can assess zAAP processor activity explicitly to determine whether additional zAAP processors need to be configured. 3.4.1 SMF records The following SMF record types are extended for this support as follows: SMF record 70 subtype 1 (CPU activity) SMF record 72 subtype 3 (Workload activity) SMF record 79 subtype 1 and 2 (Address Space State and Resource data) See Appendix B.1, “SMF records” on page 50 for a description of the changes to the SMF records. 30 zSeries Application Assist Processor (zAAP) Implementation Note: The RMF support is shipped as an SPE (APAR OA05731). PTFs will be available for z/OS V1R5 RMF, as follows: UA90081 (Base) UA90082 (Kanji) 3.4.2 Monitor I - CPU and logical partition data reporting The CPU data gatherer ERBMFDCP checks the PCCA area to determine the CPU type: If the field PCCAIFA is set, it is a zAAP processor. ERBMFDCP issues Diagnose 204 to store information about logical CPU utilization. It is important to understand that zAAP(IFA) processors are reported together with the ICF processor pool. This is because the machine sees and manages the ICFs, IFLs, and zAAPs as a single pool of resources. Thus, the reporting interfaces (Diagnose 204 and 224) do not distinguish between them. Refer to 4.3, “LPAR weight for zAAPs” on page 41 for more details. For z990, RMF exploits the “slimmed down” approach taken by the Diagnose code: New subcode 7 is used which includes logical zAAPs (although reported with the existing ICF and IFL type code 01). Since the same data format is returned, this causes no additional effort within RMF. ERBMFDCP checks the IFA-facility-installed bit of the Service Call Control block (SCCB). If set, the new subcode 7 is used. If not set, RMF continues to use subcode 6. RMF CPU Activity report On the CPU Activity report, the following changes support zAAP processing: The CPU section is grouped per processor type. A new TYPE column indicates whether the processor belongs to the pool of regular CPs or IFA (zAAP) processors. In the testing done, there was one standard CP and two zAAPs, as shown in Figure 3-4. The last two columns are only available for regular processors—not for zAAPs—because zAAPs are disabled for I/O interruption. A TOTAL/AVERAGE line is printed per pool. Figure 3-4 RMF CPU Activity report RMF Partition Data report The Partition Data report section of the CPU Activity report provides data about all configured partitions, independent of the type of operating system running in each partition. This section only appears when RMF is running in a Processor Resource/Systems Manager environment in LPAR mode, and is only for partitions active at the end of the duration interval. Chapter 3. Using zAAPs 31 Figure 3-5 shows the Partition Data report. Partition A13 is the partition that testing was done with the zAAPs. The numbers of physical processors are split up into general purpose processors (CP) and special purpose processors (ICF), where the term ICF designates a common pool, and are placed by the LPAR manager in the same processor pool (separate from the standard processors (CP) pool) for the following special purpose processors: ICF (Internal Coupling Facility) IFL (Integrated Facility for Linux) IFA (Integrated Facility for Applications) Note: This is valid for z990 and z890 implementations. This is because the Diagnose 204 and 224 interfaces recognize ICFs, IFLs, and IFAs as a single pool of resources. See 4.3, “LPAR weight for zAAPs” on page 41 for more details. Note: Near the bottom of the sample report, notice that for partition A13, the 2 ICFs are the zAAPs, and at the top for partition A13 there is 1 CP. On the report, the partitions are grouped according to the type of their physical processors (CP) or special purpose processors (ICF), and all percentages that are based on the number of physical processors are calculated using the corresponding number of logical processors. Figure 3-5 CPU Activity Report - Partition Data Report Section Note: In the Partition Data report, the following values are for standard CPs only: MSU - shows capacity information for a partition in terms of MSUs per hour. Capping - shows capping information for a partition. 32 zSeries Application Assist Processor (zAAP) Implementation WLMGL - Workload Activity report - Goal Mode To produce this report, specify: WLMGL(RCPER(option)) The Resource Consumption section of the WLMGL report is extended by the following zAAP-related fields: The IFA is the zAAP processor service time in seconds. It does not account for the zAAP eligible work executed on regular CPs. APPL% IFA is the percentage of CPU time executed on zAAP processors. APPL% IFACP is the percentage of CPU time used by zAAP eligible work on regular CPs. It is also reported by the IWMRCOLL service. It allows the customer to assess whether additional zAAP processors might be necessary to run all zAAP eligible work. – If crossover, IFACrossOver= YES on the IEAOPTxx parmlib member, and honor priorities are turned on or defaulted in the IEAOPTxx=, the CP time was accumulated at priority. – If crossover is on and honor priorities is turned off, the CP time for zAAP eligible work was accumulated after discretionary service class periods were dispatched. – If crossover is turned off, IFACrossOver=NO, no zAAP eligible work run on CPs. This percentage should be zero. Figure 3-6 WLMGL - Service class report Service time calculations As illustrated in Figure 3-6, service times are calculated as follows: APPL% CP is the percentage of CPU time used by non-zAAP eligible work plus zAAP eligible work (APPL%IFACP) running on regular CPs. APPL% CP = (TCB + SRB + RCT + IIT + HST – IFA_normalized) x 100 / interval length – TCB is the task control block time spent on regular CPs as well as zAAP processors. It is calculated from the total CPU service units (R723CCPU) under consideration of the CPU service coefficient (R723MCPU) and CPU adjustment factor (R723MADJ). – The zAAP time may be normalized for z890 models, where regular CPs (capped) and zAAP processors (not capped) run at different speed. Thus, a “normalized” zAAP time portion has to be removed. Note: If no zAAPs are configured, N/A is shown for the new fields. To calculate the percentage of non-zAAP eligible work subtract the value of IFACP from CP. For example, in Figure 3-6 on page 33: non-zAAP eligible work % = APPL%CP - APPL%IFACP = 85.7 - 65.7 = 20% Chapter 3. Using zAAPs 33 Workload Period report The USING% block is extended by IFA Using. IFA delays may appear in the EXECUTION DELAY% block if among the highest contributors to the TOT delay samples. GOAL is now formatted in a separate report line above this section. IFA using and delay states Work which is eligible to run on an zAAP can also be executed on a regular CP. Therefore, three new using and delay states are introduced in addition to CPU using and delay: IFA using: work is found executing on a zAAP processor. IFA on CP using: zAAP eligible work is executed on a regular CP. IFA delay: work is delayed for a zAAP processor. zAAP eligible work executed on regular CPs (IFA on CP using) must be regarded with respect whether the dispatcher honors priorities for selecting work from the IFA work unit queue or not: If the dispatcher honors the priority these using samples are also contained in the CPU using samples and the amount of IFA delay samples is reduced by the amount of “IFA on CP using.” When the dispatcher does not honor priority either because the installation has it turned off or because WLM turned it off, “IFA on CP” using samples are added to the IFA using samples. Thus, “IFA on CP” using samples are always contained in either CPU using samples or IFA using samples. Figure 3-7 Workload period report Execution velocity IFA using and delay samples are included in the execution velocity. Note that zAAP processors are not managed as a resource by WLM but their effect is shown in the goal achievement. The WLM collection service IWMRCOLL already includes zAAP using and delay samples in its total using and delay sample counters. Since RMF's execution velocity calculation is based on these total counters, no changes in the RMF algorithms are necessary. 3.4.3 Monitor III SYSINFO report The following fields in the System Information report of Monitor III, shown in Figure 3-8 on page 35, are changed and include new information in support of zAAPs: 34 Partition Partition name. CPs Online The number of standard CPs online during the range period. IFAs Online The number of IFA processors online during the range period. zSeries Application Assist Processor (zAAP) Implementation Avg CPU Util% The average CPU utilization percentage for all standard CPs is also displayed on the WFEX report. If data is missing or not valid, this field contains ***. Avg MVS Util% MVS view of standard CP utilization. Appl% Percentage of CPU time on standard CPs used by all address spaces during the report interval. This value is divided by the number of standard CPs that have been active during this interval. EAppl% Percentage of CPU time on standard CPs used by all address spaces and enclaves during the report interval. This value is divided by the number of standard CPs that have been active during this interval. Appl% IFA Percentage of CPU time on IFA processors used by all address spaces and enclaves during the report interval. This value is divided by the number of IFA processors that have been active during this interval. Figure 3-8 RMF Monitor III overview report Meaning of CPU UTIL% in Sysinfo and Workflow/Exception report changes: Only regular CPs are included – no zAAPs. Processor Using and Delay samples consider regular CPs and zAAPs processors. – zAAP using and delay is included in Using(%), Delay(%) and Workflow(%) metrics. ExecVelocity% in the SYSSUM report contains IFA using and delay samples. Appl% and EAppl% (percentage of CPU time) metrics in Sysinfo and Enclave report contain CPU time spent on regular as well as IFA processors. Chapter 3. Using zAAPs 35 3.5 Operator commands There are no new commands or messages specific to zAAPs. However, zAAPs can be handle or displayed by using already existing commands. D M=CPU Identifies which processors are zAAPs and which are standard CP processors. zAAP processors have unique addresses distinct from standard CP processors. See Figure 3-9 on page 36. Figure 3-9 D M=CPU command 3.5.1 Additional information on zAAPs CF CPU(xx),offline|online can be used to vary zAAPs online and offline. With APAR PQ93310, code has been added to the SDSF DA modules to enable SDSF to reflect zSeries Application Assist Processor (zAAP) usage. New columns are added to the Display Active Users (DA) panel to show the address space service time on the CP, the service time on an IFA (zAAP), and any IFA service time on the CP. 36 zSeries Application Assist Processor (zAAP) Implementation 4 Chapter 4. Performance considerations This chapter discusses the following topics: Workload Manager and zAAPs Software capping considerations LPAR weight for zAAPs How to do capacity planning for zAAPs © Copyright IBM Corp. 2004. All rights reserved. 37 4.1 Workload Manager and zAAPs zAAP, also referred to as IFA, is a new type of processor which allows a specific type of work to run on a different type of processor on zSeries hardware under control of the z/OS operating system. zAAPs are similar to other special purpose processors like ICFs for coupling facilities or IFLs to run the Linux or z/VM operating systems. The difference is that z/OS recognizes zAAPs as a new type of logical processors. With the introduction of zAAPs z/OS now recognizes two types of logical processors, one for regular CPs and one for IFAs. Currently, the specific type of work that can be dispatched on a zAAP processor is work being executed in a Java Virtual Machine. The JVM has been enhanced to support a switch interface which signals the dispatcher that zAAP eligible work is now starting to execute. The work continues its execution on a regular CP until it is preempted; it is then queued for execution to the zAAPs. When a zAAP becomes ready it selects work from the zAAP dispatcher queue and processes it. This work is also still eligible to be processed on regular CPs, depending on the installation options. That means a regular CP can select work from the system work unit queue as well as the zAAP work unit queue. The current design in general assumes that this is always possible and certain restrictions can be set through OPT parameters by the installation. The introduction of zAAPs has implications on System Resource Manager (SRM). SRM and WLM form one component to manage the access for workloads to resources. The following areas are affected: Reduced preemption New OPT parameters to control the dispatching of work eligible to run on zAAPs Extensions to defined capacity management to influence the dispatching Collection and calculation of CPU and zAAP using and delay samples Calculation of service and CPU times Support of zAAPs with different speed then regular CPs Extensions to WLM and SRM reporting interfaces Modifications for starting WLM server address spaces Exclude zAAPs from LPAR management Extensions to SMF 99 data The following sections describe the changes made to SRM to support IFAs. 4.1.1 Externals to control dispatching on zAAPs There are two possibilities for how regular CPs can select Java work from the zAAP work unit queue (WUQ): 1. By priority, meaning the dispatcher on the regular CP checks both dispatching queues, the system work queue and the zAAP work unit queue and selects the work with the highest priority. 2. Only when no work is available on the system work queue (SWUQ). The zAAP work effectively runs as if its priority is below the discretionary work on the regular CP. In general, the dispatcher running on a regular CP selects work from both WUQs and honors the priority. 38 zSeries Application Assist Processor (zAAP) Implementation As mentioned in 2.4, “Software setup” on page 23 you can set, via the IEAOPTxx parmlib member, the options for your installation. All Java work on a zAAP You can force all Java work to be executed on zAAP processors (if there is at least one available) by coding: IFACROSSOVER=NO. Java work runs in both CP and zAAP You can allow JAVA work to be executed in both CP and zAAP processors by specifying: IFACrossOver=YES. If you set IFACrossOver=YES, then you can control how the CPs are used to execute JAVA work, as described in the beginning of the section. The IEAOPTxx parameter that dictates how the CP is used is: IFAHonorPriority, as follows: YES The CPs are used as described in Option 1 in “Externals to control dispatching on zAAPs” on page 38 NO The behavior is as described in Option 2 in “Externals to control dispatching on zAAPs” on page 38 IFACrossOver and IFAHonorPriority are passed to the supervisor to tell the supervisor whether it should allow this function or not. 4.1.2 LPAR capping For software licensing, WLM is able to communicate with the LPAR Hipervisor to turn LPAR capping on and off. The base for capping a partition is the 4 hour rolling average. When it starts to exceed the defined capacity limit specified by the customer, WLM starts to cap the partition. When WLM starts to cap a partition it turns off honor priority. This is communicated to the supervisor. It is assumed that the regular CPs will still process the IFA work, but now only below discretionary priority because the crossover is available by default. Therefore it is not assumed that the utilization of regular CPs drops and that primarily IFA work is delayed due to capping. WLM will turn on honor priority again when the 4 hour rolling average drops below the defined capacity limit. 4.2 zAAP using and delay samples Work which is eligible to run on a zAAP can also be executed on a regular CP. Therefore three new CPU using and delay states are introduced: IFA using: Work is found executing on an IFA. IFA on CP using: Work which is eligible to run on an IFA is executed on a regular CP. IFA delay: Work is delayed for an IFA. The states CPU using and delay already exist, as follows: CPU using: Work is found executing on a regular CP (existing). CPU delay: Work is delayed for a regular CP (existing). Chapter 4. Performance considerations 39 The work which is eligible to run on IFAs but which is executed on regular CPs, or IFA on CP using must be regarded with respect whether the dispatcher honors priorities for selecting work from the IFA work unit queue or not. If the dispatcher honors the priority, these using samples are also contained in the CPU using samples and the amount of IFA delays is reduced proportionally to the amount of IFA on CP using. Figure 4-1 shows how the calculations are done. CPU using = CPU Conv IFA delays All IFA using = CPU delay = CPU using + IFA_on_CP using = IFA_on_CP using x IFA delay / All IFA using MAX(1, IFA using + IFA_on_CP using) delay + Conv IFA delays Figure 4-1 Formulas for calculating samples When the z/OS dispatcher does not honor priority either because the installation has it turned off or because WLM turned it off, IFA on CPU using is added to the IFA using. That also means that IFA on CP using is always either contained in CPU using or IFA using. Execution velocity The IFA using and IFA delay samples are included in the execution velocity. It has to be noted that IFAs are not managed as resources, but their effect is shown in the goal achievement. 4.2.1 Calculation of service times and service units The following time values exist today. They are the base for all SRM service time and service unit calculations: ASCBEJST is the job step time. ASSBPHTM is enclave TCB and preemptable SRB time of the home address space. ASSBASST is the enclave TCB and preemtable SRB time of the current address space. ENCBTotalCPUTime is the corresponding time value of ASCBEJST for enclaves. All these values contain the total time for regular CPs and IFAs. Some new fields need to be added to allow WLM to subtract certain execution parts for IFA work. The following values are added to represent the consumption on IFAs or regular CPs only: ASSB_TIME_ON_IFA is the job step time spent on IFAs only. ASSB_TIME_IFA_ON_CP is the job step time of IFA work spent on regular CPs. ENCB_TIME_ON_IFA is the enclave time spent on IFAs. ENCB_TIME_IFA_ON_CP is the enclave time of IFA work spent on regular CPs. Remark on ASSBASST There will be no breakdown of ASSBASST like it exists for ASCBEJST. The assumption is that SRBs can't execute Java work. If this changes or if other base application components like Java support the switch function this decision may be revised. Remark on ASSBPHTM There is no individual time tracking of ASSBPHTM necessary, at least from a WLM/SRM point. Other components or monitoring products may have a different view, especially if IFAs and regular CPUs support different speeds. 40 zSeries Application Assist Processor (zAAP) Implementation Service units All service units which are externalized by SRM contain both the consumption of regular CPs as well as the consumption of IFAs. Service Units which are used internally for SRM's algorithms only include regular CP service time because IFAs are not managed. 4.2.2 Support of IFAs with different speed than regular CPs On z890 knee capped processors the IFAs are not knee capped. Therefore the code must be able to handle processor constellations with different speeds. The speed values are provided through the STSI interface, and WLM/SRM calculates a normalization factor scaled by 256 and sets the factor into the SVT so that a supervisor can use it to calculate the IFA service times based on the speed of regular CPs. The normalization factor is x'100' if the speed of regular CPs and IFAs is the same. For external monitoring products the normalization factor is passed through IWMRCOLL. The values captured for time spent exclusively on IFAs (ASSB_TIME_ON_IFA and ENCB_TIME_ON_IFA) represent IFA speed. The job step time (ASCBEJST) and the corresponding time value for enclaves (EncbTotalCPUTime) contain regular CP times as well as IFA times. Here the IFA time values are normalized and represent the amount of time the task would have taken if executed on a regular CP. 4.2.3 Starting WLM server address spaces WLM/SRM considers the CPU demand when it plans to add a new server address space and compares it with the CPU utilization to find out whether it makes sense to start a new server address space. With the possibility of WebSphere and DB2 Stored Procedures running Java programs, IFA demand and utilization must be considered when starting new server address spaces. 4.2.4 LPAR management IFAs are excluded from LPAR Weight and CPU Management. That means LPAR Weight and CPU Management is only performed for regular CPs. 4.2.5 Defined capacity and four hour rolling average Defined capacity management is also only performed for regular CPs, IFAs are ignored. The four hour rolling average is only calculated for work being executed on regular CPs. The only adjustment is required for IFA work which is executed on regular CPs. If the four hour rolling average reaches the defined capacity limit, WLM/SRM turns of the honor priority setting so that IFA work can't compete with regular work for regular CPs when the system is capped. WLM/SRM turns on honor priority again when the four hour rolling average drops below the defined capacity limit. 4.3 LPAR weight for zAAPs To understand the way LPAR management manages zAAPs, consider the report shown in Figure 4-2 on page 42. There are three independent sections in this report, as follows: The top section provides information on the number of logical partitions defined (in our case 30), the partition in which this report was taken (A13), the image capacity in MSUs (538; this is the nominal capacity for a z990 model 310), if wait completion has not been Chapter 4. Performance considerations 41 used (NO), the number of physical processors (16), the number of CPs (10) and the number of ICFs(6). Note: There are no numbers for zAAPs; as was previously discussed, zAAPs are included in the ICF pool. In our example the number of zAAPs plus the number of IFLs plus the number of ICFs is 6. The second part of the report shows the defined partitions that are sharing the processors in the system (CPs). The number of defined partitions is 30, of which 21 are active. Each partition has its defined weight; the sum of all weights of the active partitions is 590. A13, the partition we are analyzing, has a weight of 10 with only one logical processor (CP) defined. So, if all partitions where using their fair share, we would have less than 2% of the system capacity available for A13 (10/590). In the example A13 is using 8.5% of all 10 CPs with a logical processor utilization of 85.7% (the other partitions were very lightly used). The third part of the report shows the defined partitions that are sharing the pool of ICF processors (that is the pool containing ICF, IFL, and zAAP processors). Note that in this group we have all the defined CF partitions (A0D, A0E, A0F, A1E, and A1F) as well as A13. Each partition (including A13) has a weight of 10. Notice that the weight for A13 is the same for both pools. Figure 4-2 Example of a RMF partition data report 4.3.1 Using weights for LPs The number of ICFs we have in the pool is six. The sum of all partition weights is 60 (six partitions, each with a weight of 10). For all CF partitions we have one logical processor defined; for A13 we have two logical processors defined (two zAAPs). The report shows that the logical processors in all CF partitions have been used to capacity, which is expected because the coupling facility control code (CFCC) uses 100% CPU and we did not have DYNDISP=YES specified. The two logical zAAPs associated with A13 also were 42 zSeries Application Assist Processor (zAAP) Implementation used to full capacity (each logical processor is using 49.71% of a processor). If you compute the weights for this pool you will see that each partition is getting 10/60 of system capacity. In other words, each partition is getting approximately the capacity of one processor. It is important to see the way LPAR manager is managing the available processor capacity between partitions. Keep this in mind when configuring your partitions including zAAPs. 4.4 Capacity planning There is a tool available to help you understand the potential for exploiting zAAPs and estimate the possible savings. In order to use this tool, you should have a prototype or application code running on the zSeries processor which can be measured to allow projections. The tool is called the zAAP Projection Tool for Java 2 Technology Edition and it is used to report measurements for zAAP eligible time. It creates a print line in the STDOUT file on a defined interval. The time will be reported as Java time eligible to execute on the zAAP. The remaining time is identified as standard CP time. In addition, the total CPU time for all TCBs, SRBs, and enclaves is reported as address space time. 4.4.1 Using the Projection Tool This tool is available for SDK 1.3.1 and 1.4.1, but there are differences in the two versions of which you should be aware: For SDK 1.3.1 users the tool is an instrumented version of IBM Developer Kit for OS/390, Java 2 Technology Edition, product 5655-D35, at PTF UQ84703 (AKA SR22) that can be downloaded from: https://www6.software.ibm.com/dl/zosjava2/zosjava2-p It contains the Java SDK 1.3.1 product at that PTF level, and adds the new capability to help estimate processor use. Processor time is gathered using a z/OS service, TIMEUSED, which is available to any z/OS program. Report lines are generated every 5 minutes by default, but this can be changed through the following JVM option: -Xifa:projectn For more information see “How to define JVM options” on page 26. For SDK 1.4.1 it is a part of the IBM SDK for z/OS, Java 2 Technology Edition, program product 5655-I56 with the APAR PQ86689. In order to use the tool you should set up a JVM option. For information about JVM options related to zAAP see 3.1, “How to define JVM options” on page 26. Understanding the report data The report shown in Figure 4-3 on page 44 has the following information: Switches To/From IFA: State changes in processing of zAAP eligible work versus not eligible work for all JAVA threads in the JVM. Java IFA: Time accumulated for JAVA threads processing zAAP eligible work. Java Standard CPU: Time accumulated for JAVA threads processing zAAP non-eligible work. Chapter 4. Performance considerations 43 Total address space CPU: Time for all work in the address space across all dispatchable units including the Java threads. Figure 4-3 is an example of the report generated by the tool. <SC70.84148345> Interval at: 14:28:58 Switches To/From IFA: 38048 Java IFA: 84.161531 sec. Java Standard CPU 0.259896sec. Total address space CPU: 84.784675 sec. Figure 4-3 Projection Tool report data Microsoft Excel workbook A Microsoft Excel workbook is available with associated programming which will process these print lines and store the needed information in a spreadsheet. It is available at: https://www6.software.ibm.com/dl/zosjava2/zosjava2-p. 4.4.2 Current tool measurements IBM has measured several known workloads in order to estimate the ratio of Java execution time to the total system CPU time. The Java percent of total CPU time can vary for a given workload. It can be influenced by many factors which affect the Java execution time and/or the total system time. Some of these factors are processor configurations, software levels including z/OS, WebSphere, and the SDK. Also, factors such as system and subsystem tuning and customization parameters have some influence. WSC technical document For more information about the tool and capacity planning refer to the WSC technical document z/OS Performance: Capacity Planning Considerations for zAAP Processors, WP100417. Table 4-1 shows the results of these measurements. Table 4-1 Java contents from IBM measured workloads Workload name Java % of total CPU time Description of workload XML Parse 98% A CPU-intensive XML parsing workload which repeatedly parses XML documents using either SAX or DOM APIs both with and without validity checking. Trade 2 40% IBM developed workload modeling an electronic brokerage providing online securities trading. Provides a real-world eBusiness application mix of HTTP sessions, servlets, JSPs, stateless session EJBs, container-managed persistent EJBs (CMPs), and JDBC data access to DB2. Generated with VA Java tooling, and characterized as light SQL with a small database component. Trade 3 60% Third generation of WebSphere end-to-end benchmark evolved from Trade 2 and covering J2EE 1.3, including the EJB 2.0 component architecture, message-driven beans with PUB/SUB and point-to-point asynchronous messaging. Characterized as light SQL with a small database component. CTG/CICS/ ERWW 40% Web-enabled access to a traditional CICS/DB2 OLTP database environment. J2EE application for legacy CICS transactions using servlets, JSPs, stateless session EJBs and the CICS Transaction Gateway (CTG). The size of the messages being passed between WebSphere and CICS is relatively small. All the business logic is in the legacy CICS transactions and not in Java. 44 zSeries Application Assist Processor (zAAP) Implementation Workload name Java % of total CPU time Description of workload IMS Connect ERWW 40% Web-enabled access to a traditional IMS/DB2 OLTP database environment. J2EE application for legacy IMS transactions using servlets, JSPs, stateless session EJBs and IMS Connect. The size of the messages being passed between WebSphere and IMS is relatively small. All the business logic is in the legacy IMS transactions and not in Java. OLTP-T 0% Traditional IMS LSPR on-line workload. Consists of light to moderate IMS transactions from DLI applications and using SNA LU2 message streams. Note: The Java percent values should only be used as a reference. As your application is developed, actual measurements should be taken to establish a value for your specific implementation of the system. Table 4-1 on page 44 has been included from the WSC document. Chapter 4. Performance considerations 45 46 zSeries Application Assist Processor (zAAP) Implementation A Appendix A. Environment description This appendix describes the test environment we used for this redbook: Hardware Software Applications © Copyright IBM Corp. 2004. All rights reserved. 47 A.1 Hardware We used the following hardware to support our tests: 2084-310 – 30 LPARs – WE used LPAR SC70 • 1 CP • 2 zAAPs A.2 Software We used the following software levels: z/OS 1.6 WebSphere Application server for z/OS 5.1 (510003) DB2 V8.1 WSAM A.3 Applications We used 2 applications for our tests. ZAAPLOAD application This is a Web application we built that only uses CPU without any I/O operation. It makes simple math operations in order to waste CPU. The WAR file provides 3 different servlets, with different levels of response time, CPU utilization, and therefore higher transaction rates: – Wzaapl (light). This is the one we used on most of our tests. – Wzaapm (medium) – Wzaaph (heavy) The WAR file is available as an additional material and can be downloaded from the IBM Redbooks Web server. Point your Web browser to: ftp://www.redbooks.ibm.com/redbooks/SG246386 Alternatively, you can go to the IBM Redbooks Web site at: ibm.com/redbooks Select the Additional materials and open the directory that corresponds with the redbook form number, SG246386. ITSO TRADER application The Trader application is a sample used to maintain a stock portfolio. It provides functions to display quotes, account status, and buy and sell. We used the DB2 version and the new Type 2 driver. For more information about this application refer to the redbook Using IBM Application Development Tools for z/OS and OS/390, SG24-7061. 48 zSeries Application Assist Processor (zAAP) Implementation B Appendix B. SMF records for zAAP processing This appendix describes the SMF record changes to support zAAPs. © Copyright IBM Corp. 2004. All rights reserved. 49 B.1 SMF records The following SMF record types are extended in support of zAAPs: SMF record 70 subtype 1 (CPU activity) SMF record 72 subtype 3 (Workload activity) SMF record 79 subtype 1 and 2 (Address Space State and Resource data) B.1.1 SMF record changes to support zAAPs Table B-1 SMF record 70 product section fields SMF record 70 to 79 product section Offset Name 49 31 SMFxxPRF Length Format Description 1 Binary Bit New Meaning when set 0 System has expanded storage 1 Processor is enabled for ES 2 There is an ESCON® director in the configuration 3 System is in z/Architecture mode 4 Yes 5-7 IFA processors available Reserved Table B-2 SMF record 70 control section fields SMF record 70.1 CPU control section Offset Name 26 1A SMF70IFA Length Format Description 2 Binary IFA processors online at the end of the interval Table B-3 SMF record 70 CPU data section fields SMF record 70.1 CPU data section 50 Offset Name 15 0F SMF70ITYP Length Format Description - CPU type 1 Binary 0 Regular CP processor 1 IFA (zAAP) processor zSeries Application Assist Processor (zAAP) Implementation Table B-4 SMF record 72 WLM section fields SMF record 72.3 workload manager control section Offset Name 11 R723MFLG 22 540 F0 Length Format Description 1 Binary Bit Meaning when set 0 1 2-7 Indicator for IFA cross-over Indicator for IFA honor priority Reserved 2 R723NFFI 4 Reserved Binary Normalization factor for IFA time. Used to convert between real IFA times and the equivalent time on regular CP. Multiply normalized IFA times with 256 and divide it this value to calculate real IFA time Table B-5 SMF record 72 period data section fields SMF record 72.3 period data section Offset Name Length Format Description 504 1F8 R723IFAU 4 Binary IFA using samples 504 1FC R723IFCU 4 Binary IFA on CP using samples. If IFA honor-priority is set, these are included in R723CCUS. If not, these are included in R723IFAU. 512 200 R723IFAD 8 Binary IFA delay samples 516 204 R723IFAT 8 Floating Normalized IFA service time (microsecond) long floating point format. Multiply with 256 and divide by R723NFFI to calculate the real IFA service time. 524 20C R723IFCT 8 Floating IFA service time spent on CPs (microseconds) Table B-6 SMF record 79 ASD and ASDJ data section fields SMF record 79.1 ASD and ASDJ data section Offset Name Length Format Description 192 C0 R791TIFA 4 Binary IFA service time (milliseconds) assb_time_on_ifa 196 C4 R791TCP 4 Binary Service time spent on CPs (milliseconds) assb_time_on_cp 200 C8 R791TIFC 4 Binary IFA service time spent on CPs (milliseconds) assb_time_ifa_on_cp Appendix B. SMF records for zAAP processing 51 Table B-7 SMF record 79 ARD and ARDJ data section fields SMF record 79.2 ARD and ARDJ data section Offset Name Length Format Description 174 AE R792TIFA 4 Binary IFA service time (milliseconds) assb_time_on_ifa 178 B2 R792TCP 4 Binary Service time spent on CPs (milliseconds) assb_time_on_cp 182 B6 R792TIFC 4 Binary IFA service time spent on CPs (milliseconds) assb_time_ifa_on_cp B.1.2 Overview processing Table B-8 Overview conditions on SMF record 70 fields Overview conditions based on SMF record 70.1(CPU) Condition Name Qualifier Source Algorithm Number of IFA (zAAP) processors NUMIFA None SMF70IFA Value or comparison IFA (zAAP) busy processors IFABUSY cpuid Like CPUBUSY Like CPUBUSY but for IFA (zAAP) processors Table B-9 Overview conditions on SMF record 72 fields Overview conditions based on SMF record 72.3(workload) 52 Condition Name Qualifier Source Algorithm IFA service time IFASEC Type R723IFAT Sum(R723IFAT) IFA service time (normalized) IFANSEC Type R723IFAT R723NFFI Sum(R723IFAT) x R723NFFI / 256 IFA service time spent on CPs IFACPSEC Type R723IFCT Sum(R723IFCT) IFA application execution time percentage APPLIFA Type R723IFAT R723IFAT/INT x 100 IFA on CP application execution time percentage APPLIFCP Type R723IFCT R723IFCT/INT x 100 IFA using% IFAUSGP Period R723IFAU R723IFAU / R723CTSA x 100 IFA on CP using% IFCUSGP Period R723IFCU R723IFAU / R723CTSA x 100 IFA delay% IFADLYP Period R723IFAD R723IFAU / R723CTSA x 100 zSeries Application Assist Processor (zAAP) Implementation Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook. IBM Redbooks For information on ordering these publications, see How to get IBM Redbooks. Note that some of the documents referenced here may be available in softcopy only. Using IBM Application Development Tools for z/OS and OS/390, SG24-7061 IBM eServer zSeries 990 Technical Guide, SG24-6947 Other publications These publications are also relevant as further information sources: Persistent Reusable Java Virtual Machine User’s Guide, SC34-6201 Java Applications in CICS, SC34-6000 IMS V8 IMS Java Guide and Reference, SC27-1296 z/OS MVS System Management Facilities (SMF), SA22-7630 z/OS Resource Measurement Facility User's Guide, SC33-7990 DB2 UDB for z/OS V8 Application Programming Guide and Reference for Java, SC18-7414 Online resources This Web site is also relevant as a source of further information: IBM Developer Kit for OS/390, Java 2 Technology Edition https://www6.software.ibm.com/dl/zosjava2/zosjava2-p How to get IBM Redbooks You can search for, view, or download Redbooks, Redpapers, Hints and Tips, draft publications and Additional materials, as well as order hardcopy Redbooks or CD-ROMs, at this Web site: ibm.com/redbooks Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services © Copyright IBM Corp. 2004. All rights reserved. 53 54 zSeries Application Assist Processor (zAAP) Implementation Index A ASCBEJST 40 ASSBASST 40 ASSBPHTM 40 C Central Processor 2 CICS startup job stream 28 CIU enablement feature 6 CP 2 Customer Initiated Upgrade (CIU) enablement feature 6 D D M=CPU command 22 DB2 stored procedure 10 DYNDISP=YES 42 E environment variables JVMPROPS 28 execution velocity 40 H HTTP Server plug-in 8 I ICF 2 IEAOPTxx member 23 IEAOPTxx parmlib member 33, 39 IFA 38 IFA projection data 28 IFA using samples 34 IFACrossOver= YES 33 IFACROSSOVER=NO 39 IFACrossOver=NO 23–24, 33 IFACrossOver=YES 39 IFAHonorPriority 39 IFAHonorPriority=NO 24 IFAs 20, 22 IFL 2 IMS Java classes 12 IMS sample library DFSJVMWK member 29 SDFSISRC member 29 IMS V8.1 Java native C code 29 Integrated Facility for Linux 2 Internal Coupling Facility 2 J Java 2 Enterprise Edition (J2EE) platform 8 Java 2 Technology Edition, SDK 1.3.1 14 Java Virtual Machine 38 JMP region 29 JVM 38 JVM option Projection Tool 43 JVM options 29 JVMPROFILE attribute 28 L libJavTDLI.so 29 M Microsoft Excel workbook 15 P partition weights 42 PR/SM 12 processing unit 2 Projection Tool workbook 16 PU 2 R Redbooks Web site 53 Contact us viii S SAP 2 SCRT 23 service unit calculations 40 SET OPT command 23 SRM 38 SRM service 40 Sub Capacity Reporting Tool 23 SWUQ 38 SYS1.PARMLIB 23 System Assist Processor 2–3 System Information report of Monitor III 34 System Resource Manager 38 system work queue 38 W WebSphere Application Server 8 WebSphere V5.1 8 WUQ 38 Z z/OS dispatcher 24, 40 © Copyright IBM Corp. 2004. All rights reserved. 55 zAAP 38 zAAP capacity planning 14 zAAP eligible work 24 zAAP Java execution 14 zAAP Projection Tool 14, 43 zAAP Projection Tool for Java 2 Technology Edition 14 zAAP Projection Tool workbook 16 zAAP work unit queue 38 56 zSeries Application Assist Processor (zAAP) Implementation zSeries Application Assist Processor (zAAP) Implementation zSeries Application Assist Processor (zAAP) Implementation zSeries Application Assist Processor (zAAP) Implementation zSeries Application Assist Processor (zAAP) Implementation (0.1”spine) 0.1”<->0.169” 53<->89 pages zSeries Application Assist Processor (zAAP) Implementation zSeries Application Assist Processor (zAAP) Implementation Back cover ® zSeries Application Assist Processor (zAAP) Implementation Features and benefits of zAAP How to order, set up, and use zAAP Dispatching, RMF, and SMF This IBM Redbook gives a broad understanding of a new architecture facility available on zSeries servers called zSeries Application Assist Processor (zAAP).The zAAP is an attractively priced specialized processing unit that provides an economical Java execution environment for customers who desire the traditional Qualities of Service and the integration advantages of the zSeries platform. INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION The objective of this book is to help you better understand the functions available with zAAPs as well as how to install, tailor and configure the new processors. BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment. For more information: ibm.com/redbooks SG24-6386-00 ISBN 0738490954