Java auf IBM z13 Ein Performance Update



Similar documents
System z Batch Network Analyzer Tool (zbna) - Because Batch is Back!

The Consolidation Process

Cloud Computing with xcat on z/vm 6.3

How To Manage Energy At An Energy Efficient Cost

Energy Management in a Cloud Computing Environment

Session Title: Cloud Computing 101 What every z Person must know

IBM Systems and Technology Group Technical Conference

Debug 101-Using ISA Tools for Apps in WebSphere Application Server z/os

Forecasting Performance Metrics using the IBM Tivoli Performance Analyzer

How to Deliver Measurable Business Value with the Enterprise CMDB

Java Application Performance Analysis and Tuning on IBM System i

CS z/os Application Enhancements: Introduction to Advanced Encryption Standards (AES)

Accelerate with ATS DS8000 Hardware Management Console (HMC) Best practices and Remote Support Configuration September 23rd, 2014.

Title. Click to edit Master text styles Second level Third level

z/osmf Software Deployment Application- User Experience Enhancement Update

SMP/E V3.5 Hands-on Lab: Learning to use SMP/E FIXCATs

Maximo Business Intelligence Reporting Roadmap Washington DC Users Group

The use of Accelerator Appliances on zenterprise

SuSE Linux High Availability Extensions Hands-on Workshop

IBM Software Services for Collaboration

The zevent Mobile Application

IBM Systems Director Navigator for i5/os New Web console for i5, Fast, Easy, Ready

Oracle on System z Linux- High Availability Options Session ID 252

How To Write An Architecture For An Bm Security Framework

Positioning the Roadmap for POWER5 iseries and pseries

DFSMS Object Support Overview: Data Archiving with OAM Session: 17809

Tip and Technique on creating adhoc reports in IBM Cognos Controller

Data Transfer Tips and Techniques

z/vm Capacity Planning Overview

Performance and scalability of a large OLTP workload

Practical Web Services for RPG IBM Integrated Web services for i

CS z/os Network Security Configuration Assistant GUI

IBM Tivoli Web Response Monitor

Arwed Tschoeke, Systems Architect IBM Systems and Technology Group

Deploying a private database cloud on z Systems

Determining which Solutions are the Best Fit for Linux on System z Workloads

DOAG November Hintergrund. Oracle Mainframe Datanbanken für extreme Anforderungen

IBM Tivoli Storage FlashCopy Manager Overview Wolfgang Hitzler Technical Sales IBM Tivoli Storage Management

Backups in the Cloud Ron McCracken IBM Business Environment

Security and Privacy Aspects in Cloud Computing

Version 8.2. Tivoli Endpoint Manager for Asset Discovery User's Guide

IBM i Network Install using Network File System

Security and Privacy Aspects in Cloud Computing

Using computing resources with IBM ILOG CPLEX

Why Finance Should Automate Management & Regulatory Reporting Processes

SHARE in Pittsburgh Session 15591

DFSMS Basics: How SMS Volume Selection Works

Session 1494: IBM Tivoli Storage FlashCopy Manager

Managed Services - A Paradigm for Cloud- Based Business Continuity

Monitoring Linux Guests and Processes with Linux Tools

Platform LSF Version 9 Release 1.2. Migrating on Windows SC

Aktuelles aus z/vm, z/vse, Linux on System z

Endpoint Manager for Mobile Devices Setup Guide

IBM Endpoint Manager. Security and Compliance Analytics Setup Guide

Migrating LAMP stack from x86 to Power using the Server Consolidation Tool

Understanding HR Schema and PCR with an Example

Big Data & Analytics. A boon under certain conditions. Dr. Christian Keller General Manager IBM Switzerland IBM Corporation

IBM Maximo Asset Configuration Manager

SAS deployment on IBM Power servers with IBM PowerVM dedicated-donating LPARs

IBM WebSphere Data Interchange V3.3

IBM MOBILE SECURITY SOLUTIONS - Identity and Access Management Focus

Experiences with Using IBM zec12 Flash Memory

Getting Started With WebSphere Liberty Profile on z/os

The predictive power of Big Data in healthcare

Rational Developer for IBM i (RDi) Introduction to RDi

Budget Control by Cost Center

Total Cost of Ownership (TCO): Comparing System z and Distributed Platforms

How-to Access RACF From Distributed Platforms

zday 2010 Smart Analytics Grzegorz T. Kolecki, Sales Leader zim, IBM CEE Information Management 2010 IBM Corporation

Mainframe hardware course: Mainframe s processors

z/tpf FTP Client Support

FICON Extended Distance Solution (FEDS)

SAP NetWeaver BRM 7.3

World Programming System provides system performance monitoring and reporting, and supports end-user applications and reporting

Table of Contents. How to Find Database Index usage per ABAP Report and Creating an Index

WebSphere Process Server v6.2 WebSphere Enterprise Service Bus v6.2 WebSphere Integration Developer v6.2

Release Notes. IBM Tivoli Identity Manager Oracle Database Adapter. Version First Edition (December 7, 2007)

what if you could increase your agility and improve your pace of IT innovation?

Using idoctorjob Watcher to find out complex performance issues

GDPS/Active-Active and Load Balancing via Server/Application State Protocol (SASP)

DB2 Database Demonstration Program Version 9.7 Installation and Quick Reference Guide

RUN BETTER Become a Best-Run Business with Remote Support Platform for SAP Business One

R/3 and J2EE Setup for Digital Signature on Form 16 in HR Systems

IBM z13 for Mobile Applications

User Experience in Custom Apps

Intelligent Business Operations Chapter 1: Overview & Strategy

EMC VMAX 40K: Mainframe Performance Accelerator

SAP Business ByDesign Reference Systems. Scenario Outline. SAP ERP Integration Scenarios

Redbooks Paper. Local versus Remote Database Access: A Performance Test. Victor Chao Leticia Cruz Nin Lei

IBM System z9 and ^ zseries Software Pricing Reference Guide

CA MICS Resource Management r12.6

DB2 Performance Tuning: Where do we start?

IBM Cognos 10: Enhancing query processing performance for IBM Netezza appliances

zenterprise Economics David Rhoderick IBM SWG

HR400 SAP ERP HCM Payroll Configuration

Lisa Gundy IBM Corporation. Wednesday, March 12, 2014: 11:00 AM 12:00 PM Session 15077

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

BUSINESS PROCESS MANAGEMENT

TSM for Virtual Environments Data Protection for VMware

z/os V1R11 Communications Server System management and monitoring Network management interface enhancements

Transcription:

Java auf IBM z13 Ein Performance Update Marc Beyerle (marc.beyerle@de.ibm.com) IBM Mainframe Specialist, Senior Java Performance Engineer 15. 18. September @ "Zeit für z" - z/os Kundentag und GSE z/os Guide in Böblingen

Trademarks The following are trademarks of the International Business Machines Corporation in the United States, other countries, or both. Not all common law marks used by IBM are listed on this page. Failure of a mark to appear does not mean that IBM does not use the mark nor does it mean that the product is not actively marketed or is not significant within its relevant market. Those trademarks followed by are registered trademarks of IBM in the United States; all others are trademarks or common law marks of IBM in the United States. For a more complete list of IBM Trademarks, see www.ibm.com/legal/copytrade.shtml: *BladeCenter, CICS, DataPower, DB2, e business(logo), ESCON, eserver, FICON, IBM, IBM (logo), IMS, MVS, OS/390, POWER6, POWER6+, POWER7, Power Architecture, PowerVM, PureFlex, PureSystems, S/390, ServerProven, Sysplex Timer, System p, System p5, System x, System z, System z9, System z10, WebSphere, X-Architecture, z13, z Systems, z9, z10, z/architecture, z/os, z/vm, z/vse, zenterprise, zseries The following are trademarks or registered trademarks of other companies. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other countries, or both and is used under license therefrom. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office. IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency, which is now part of the Office of Government Commerce. * All other products may be trademarks or registered trademarks of their respective companies. Notes: Performance is in Internal Throughput Rate (ITR) ratio based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput improvements equivalent to the performance ratios stated here. IBM hardware products are manufactured Sync new parts, or new and serviceable used parts. Regardless, our warranty terms apply. All customer examples cited or described in this presentation are presented as illustrations of the manner in which some customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics will vary depending on individual customer configurations and conditions. This publication was produced in the United States. IBM may not offer the products, services or features discussed in this document in other countries, and the information may be subject to change without notice. Consult your local IBM business contact for information on the product or services available in your area. All statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. Information about non-ibm products is obtained Sync the manufacturers of those products or their published announcements. IBM has not tested those products and cannot confirm the 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. Prices subject to change without notice. Contact your IBM representative or Business Partner for the most current pricing in your geography. 2

Agenda Motivation Simultaneous Multi-Threading (SMT) Single Instruction Multiple Data (SIMD) Other Java on z13 improvements 3

Motivation Question: Why should you care about (a) Java on the mainframe in general and (b) Java performance in particular? Answer to (a) is rather easy: Java is the de facto standard for new application development projects, also on IBM z SystemsTM Java does not necessarily mean WebSphere Application Server there is a large amount customers who currently run Java projects in IMSTM, CICS, Batch, etc. The answer to (b) has many aspects and one of the most important ones is that historically, people are very performance / resource consumption sensitive on IBM z Systems On the z platform, we have an enormous portfolio of tooling around measuring resource consumption and / or performance (RMFTM, SMF, Hardware Instrumentation Services (HIS), Application Performance Analyzer (APA), z/vm Performance Toolkit, Tivoli product suites, etc.) 4

Agenda Motivation Simultaneous Multi-Threading (SMT) Single Instruction Multiple Data (SIMD) Other Java on z13 improvements 5

Simultaneous Multi-Threading Implementing Simultaneous Multi-Threading (SMT) in the new IBM z13tm is a big step for Java, since many Java workloads benefit greatly from SMT However, not all Java workloads will benefit from SMT, therefore one cannot make a general statement like " you will always get x% improvement " Workloads that will benefit: Workloads that will not benefit so much: Generally speaking: all lightweight applications that require lots of threads Generally speaking: all heavyweight applications, regardless of the number of threads Lightweight in this context mostly means small cache footprint Example: lightweight web applications (front-end-only type of web appl.) Example: payroll applications (more or less single-threaded, lots of DB accesses) Other example: lightweight transaction processing (transaction just updating 1 row in the DB) Other example: overnight Java batch runs (same characteristics as payroll) 6

Simultaneous Multi-Threading, cont. Double the number of hardware threads per core Independent threads can be more effective utilizing pipeline Threads share resources may impact single thread perf. Pipeline (eg. physical registers, fxu, fpu, lsu, etc.) Cache Throughput improvement is workload dependent Two lanes handle more traffic overall 7

IBM Business Rules Processing with IBM Java 8 and z13 In this specific example, SMT gives you around 31% throughput improvement (Controlled measurement environment, results may vary) 8

Java Store, Inventory and Point-of-Sale App with IBM Java 8 and z13 In this example, SMT gives you around 27% throughput improvement (Controlled measurement environment, results may vary) 9

Agenda Motivation Simultaneous Multi-Threading (SMT) Single Instruction Multiple Data (SIMD) Other Java on z13 improvements 10

Single Instruction Multiple Data Quick recap the following pictures illustrate the principle of Single Instruction Multiple Data (SIMD): When I first heard that z13 was going to implement SIMD, I didn't see the value for Java business applications in it, since I only knew about SIMD advantages in scientific applications like image processing, for example but I was wrong 11

Single Instruction Multiple Data, cont. Basically, SIMD is very well suited whenever one has to process large arrays of data of the same type, which also means large arrays of character data also known as strings Character array: Situations when processing on character arrays occurs: String comparison Single character / substring search String conversion All of the above mentioned operations are heavily used by Java application programmers 12

String, Character Conversion and Loop Acceleration with SIMD IBM z13 running Java 8 Single Instruction Multiple Data (SIMD) vector engine exploitation java.lang.string exploitation - compareto - comparetoignorecase - contains - contentequals - equals - indexof - lastindexof - regionmatches - tolowercase - touppercase - getbytes java.util.arrays - equals (primitive types) String encoding converters For ISO8859-1, ASCII, UTF8, and UTF16 - encode (char2byte) - decode (byte2har) Auto-SIMD - Simple loops (eg. matrix multiplication) Primitive operations are between 1.6x and 60x faster with SIMD (Controlled measurement environment, results may vary) 13

Java Store, Inventory and Point-of-Sale App with IBM Java 8 and z13 In this example, SIMD gives you max. 15% throughput improvement (Controlled measurement environment, results may vary) 14

Comment Important comment mostly for the people who cannot attend the live presentation, but only have the slide deck In the previous performance chart, I said max. x% by intention. This is because the change from Java V7.1 to Java V8 includes both general IBM Java Virtual Machine (JVMTM) improvements and also SIMD improvements. Or in other words, SIMD can at a maximum / as an upper bound be responsible for x% improvement, since the general JVM improvements also contribute to the x% value. Very probably, SIMD is responsible for less than x%, but definitely not more than x%. 15

SIMD exploitation is heavily based on workload characteristics SIMD eligible SIMD eligible 40% 10% Not SIMD eligible 60% Not SIMD eligible OR 90% The big question is: How much "SIMD eligible" code contains your Java workload? String operations (compares, searches, etc.), conversions Array compares, Auto-SIMD 16

Method for estimating the percentage of SIMD eligible code in your workload This method is suitable for measuring the percentage of SIMD-eligible instructions at the Java language level Disclaimer #1: This method is not 100% accurate, since it is impossible to measure the percentage of Auto-SIMD instructions at the Java language level. Measuring the percentage of Auto-SIMD instructions would imply instrumenting the Just-In-Time (JIT) compiler. This method uses Java bytecode instrumentation, which adds some additional cost compared to the execution of un-instrumented Java workload Disclaimer #2: This method is not 100% accurate, since bytecode instrumentation itself slightly skews the measurement 17

Method for estimating the percentage of SIMD eligible code in your workload, cont. Question: What is this method based on? Answer: Tool being used for this method is Jinsight, a Java profiling agent (or Java profiler) for IBM z Systems Profiler in this context means the tool hooks into the JVM and gets notified whenever a particular event occurs This event listening mechanism is based on Java bytecode instrumentation Jinsight has 2 execution modes: Profiling mode (recording sequence of events, extremely intrusive) CPU mode (recording duration of transactions, slightly intrusive) In order to estimate the SIMD eligible code percentage, Jinsight's CPU mode has to be used Tracing an entire application can only be realized with CPU mode, since profiling mode would produce terabytes of trace data 18

Method for estimating the percentage of SIMD eligible code in your workload, cont. Question: What else do you need? Answer: Besides the Jinsight profiling agent, you also need a configuration file for CPU mode tailored to your application that turns transaction time recording on for the SIMD eligible Java instructions If you put the application under typical load with Jinsight CPU mode turned on, you will get the amount of CPU time spent for SIMD eligible instructions Important: If you put load on the application that does not correspond to real life usage, your estimation will not reflect reality Divide the time spent for SIMD eligible instructions by the total CPU time for the Java address space and you will get an idea whether your application will benefit from SIMD or not 19

Method for estimating the percentage of SIMD eligible code in your workload, cont. I did this exercise for a very small Java web application (based on JavaServer Faces), just to see if it works. The following summarizes my observations. The configuration file has to be adapted for every application Due to the way CPU mode transactions work Web applications: define tx start when the request enters the application server CICS / IMS: define tx start when the Java application gets called SIMD eligible instructions sometimes call themselves, so you should only count the outermost / first-level ones Otherwise, you will end up with wrong assumptions 20

Method for estimating the percentage of SIMD eligible code in your workload, cont. In my example, there were no character conversion operations or array compares, just string operations This is just an example and does not necessarily represent all Java web applications Nevertheless, the percentage of CPU time spent for SIMD eligible instructions was 16.5% of the total CPU time consumed by the application Now lets do some math 21

Agenda Motivation Simultaneous Multi-Threading (SMT) Single Instruction Multiple Data (SIMD) Other Java on z13 improvements 22

IBM SDK for z/os, Java Tech. Edition, Version 8 (IBM Java 8) New Java8 Language Features Lambdas, virtual extension methods IBM z13 exploitation Vector exploitation and other new instructions Instruction scheduling General throughput improvements Up-to 17% better application throughput Significant improvements to ORB Improved crypto performance for IBMJCE Block ciphering, secure hashing and public key Up-to 4x improvement to Public Key using ECC CPACF instructions: AES, 3DES, SHA1, SHA2, etc. Significantly improved application ramp-up Up-to 50% less CPU to ramp-up to steady-state Improved perf of ahead-of-time compiled code Improved Monitoring JMXTM beans for precise CPU-time monitoring Enhancements to JZOS Toolkit for Java batch 23

IBM Java 8: CPU-Intensive Benchmark (Controlled measurement environment, results may vary) 24

z/os WAS/Liberty 8.5.5.5 SSL-Enabled DayTrader 3.0 (Controlled measurement environment, results may vary) 25

WAS on z/os DayTrader Aggregate HW, SDK and WAS Improvement: WAS 6.1 (IBM Java 5) on z9 to WAS 8.5 (IBM Java 7R1) on zec12 History of WAS on z/os Hardware/Software Performance Aggregate Performance Estimate 12.0 +16%z Hardware Improvement 10.0 +41%z +10%* Software Improvement 10.8 9.3 +16%t 8.0 +25%t 6.0 6.6 6.0 +43%t 5.2 +40%t 4.0 +32%t 3.9 +57%t 3.1 2.2 1.6 2.0 1.0 Java 5 Java 5 Java 6 Java 6 Java 601 Java 601 Java 7 SR4 Java 7.1 SR1 Java 7.1 SR2 Java 7.1 SR2 Version 7.0 on z10 Version 7.0 on z196 Version 8.5 on z196 Version 8.5 on EC12 Version 8.5 on EC12 Version 8.5.5.2 on EC12 Version 8.5.5.5 on z13 wo/smt Version 8.5.5.5 on z13 w/smt 0.0 Version 6.1 on z9 Version 6.1 on z10 10.8x aggregate hardware and software improvement comparing WAS 6.1 IBM Java5 on z9 to WAS 8.5.5.2 IBM Java7R1 on z13 w/smt z ziips DayTrader 3 * DayTrader3 t DayTrader2 (Controlled measurement environment, results may vary) 26

Summary Generally speaking, both Java V8 and IBM z13 improve performance of Java applications on the IBM mainframe significantly The exact percentage of improvement depends heavily on the characteristics of the application (instruction mix, crypto / no crypto, cache intensity, etc.) You have to upgrade to Java V8 in order to make the most out of z13 WebSphere Liberty Profile is already supported, traditional WebSphere Application Server and CICS / IMS will follow 27

Thank you!

Resources IBM Client Center Systems and Software, IBM Germany Lab Part of the IBM Development Lab in Boeblingen, Germany External homepage: http://www.ibm.com/de/entwicklung/clientcenter/index_en.html IBM Intranet: http://clientcenter.de.ibm.com Email: clientcenter@de.ibm.com IBM developer kits: http://www.ibm.com/developerworks/java/jdk Java on z/os: http://www.ibm.com/systems/z/os/zos/tools/java Java Diagnostics Guide: http://www.ibm.com/developerworks/java/jdk/diagnosis JinsightLive for IBM System z homepage: http://www.ibm.com/systems/z/os/zos/features/unix/tools/jinsightlive.html 29