zSeries Application on Assist Processor (zAAP) Implementation

advertisement
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
Download