© 2007 ADP 1 Java Capacity Planning & Performance Measurements Dr. Carl J. De Pasquale Electronic Numerical Integrator and Computer.

Slides:



Advertisements
Similar presentations
Web Performance Tuning Lin Wang, Ph.D. US Department of Education Copyright [Lin Wang] [2004]. This work is the intellectual property of the author. Permission.
Advertisements

  Copyright 2003 by SPAN Technologies. Performance Assessments of Internet Systems By Kishore G. Kamath SPAN Technologies Testing solutions for the enterprise.
Processes CSCI 444/544 Operating Systems Fall 2008.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
Measuring Performance Chapter 12 CSE807. Performance Measurement To assist in guaranteeing Service Level Agreements For capacity planning For troubleshooting.
Loupe /loop/ noun a magnifying glass used by jewelers to reveal flaws in gems. a logging and error management tool used by.NET teams to reveal flaws in.
Page 1 © 2001 Hewlett-Packard Company Tools for Measuring System and Application Performance Introduction GlancePlus Introduction Glance Motif Glance Character.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Module 8: Monitoring SQL Server for Performance. Overview Why to Monitor SQL Server Performance Monitoring and Tuning Tools for Monitoring SQL Server.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Platform as a Service (PaaS)
Java and C++, The Difference An introduction Unit - 00.
Troubleshooting SQL Server Enterprise Geodatabase Performance Issues
COMP 110 Computer Basics Luv Kohli August 25, 2008 MWF 2-2:50 pm Sitterson
Austin Java Users Group developerWorks article – µActor Library BARRY FEIGENBAUM, PH. D. 02/26/13.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
CS 11 java track: lecture 1 Administrivia need a CS cluster account cgi-bin/sysadmin/account_request.cgi need to know UNIX
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
Software Engineering Design Patterns. Singleton Single instance of class Constructor is private static final Class instance constructed when application.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
© 2004 OPNET Technologies, Inc. All rights reserved. OPNET and OPNET product names are trademarks of OPNET Technologies, Inc. ARMing Apache David Carter.
“Load Testing Early and Often” By Donald Doane Presentation to the Rockville MDCFUG.
1 Programming Java Java Basics. 2 Java Program Java Application Program Application Program written in general programming language Applet Program running.
CS333 Intro to Operating Systems Jonathan Walpole.
Performance Analysis & Code Profiling It’s 2:00AM -- do you know where your program counter is?
IBM TSpaces Lab 3 Transactions Event Registration.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
C++ The reason why it is still in use. Table of Contents Disadvantages Disadvantages Advantages Advantages Compare with object-oriented programming language.
CSC Multiprocessor Programming, Spring, 2012 Chapter 11 – Performance and Scalability Dr. Dale E. Parson, week 12.
Troubleshooting SQL Server Performance: Tips &Tools Amit Khandelwal.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Java – in context Main Features From Sun Microsystems ‘White Paper’
31 Oktober 2000 SEESCOASEESCOA STWW - Programma Work Package 5 – Debugging Task Generic Debug Interface K. De Bosschere e.a.
1 Copyright © 2011 Tata Consultancy Services Limited TCS Internal.
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
Java Object-Relational Layer Sharon Diskin GUS 3.0 Workshop June 18-21, 2002.
Capacity Planning in a Virtual Environment Chris Chesley, Sr. Systems Engineer
RealTimeSystems Lab Jong-Koo, Lim
1 Presented by: Val Pennell, Test Tool Manager Date: March 9, 2004 Software Testing Tools – Load Testing.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
SQL Database Management
Platform as a Service (PaaS)
Getting the Most out of Scientific Computing Resources
Lecture 1b- Introduction
Pro-Active Performance Engineering
Platform as a Service (PaaS)
OPERATING SYSTEMS CS 3502 Fall 2017
Getting the Most out of Scientific Computing Resources
CS399 New Beginnings Jonathan Walpole.
Performance Testing Methodology for Cloud Based Applications
Lecture 1 Runtime environments.
Introduction Enosis Learning.
Migration Strategies – Business Desktop Deployment (BDD) Overview
Flight Recorder in OpenJDK
Introduction Enosis Learning.
Software Quality Engineering
March 29th Odds & Ends CS 239.
Adaptive Code Unloading for Resource-Constrained JVMs
Object-Oriented Software Engineering
DevOps Meetup | Test Automation | 3/19/2012
Lecture 1 Runtime environments.
M S COLLEGE ART’S, COMM., SCI. & BMS
CSC Multiprocessor Programming, Spring, 2011
The Design and Implementation of a Log-Structured File System
Presentation transcript:

© 2007 ADP 1 Java Capacity Planning & Performance Measurements Dr. Carl J. De Pasquale Electronic Numerical Integrator and Computer Electronic Discrete Variable Automatic Computer

© 2007 ADP 2 Java Capacity Planning & Performance Measurements Agenda –Capacity vs. Performance –Java capacity planning Java black box –Tools Java application –Tools –Performance Measurements Coding standards Byte code instrumentation –Method performance measurements using management library –Method performance measurements using ARM & management library Tools –Conclusions

© 2007 ADP 3 Java Capacity Planning & Performance Measurements Hardware Does Not Always Solve Capacity Problems Capacity of a given hardware configuration is subject to the application constraints Capacity = f(Hardware, Application Performance) Assume a given hardware configuration –is 70% utilized, –Provides a 3 second application response, –When the arrival rate is two hundred transactions per second. –Management upgrades the hardware configuration with one that is twice as fast What could be the affect on the response time?

© 2007 ADP 4 Java Capacity Planning & Performance Measurements What could be the affect on the response time? Response Time Could Improve –If there isn’t an application CPU bottleneck –If there isn’t an application threading bottleneck –If there isn’t a network or I/O bottleneck Response Time Could Degrade –Work arrives faster Saturates non CPU peripherals CPU experiences I/O Waits –If there is an application threading bottleneck –If SQL is a poorly written More physical I/O executed than required table scans/small reads –If there is a Network Bottleneck Small packet size

© 2007 ADP 5 Java Capacity Planning & Performance Measurements Black box Java Capacity Planning –The Java Process CPU Disk Network Memory –No application visibility –Many java classes running in one JVM Application Capacity Planning –Process java Application Class/Method Data –CPU time by method –Elapsed time by method –Method invocation count –Memory usage heap –Workflow trace –SQL timing

© 2007 ADP 6 Java Capacity Planning & Performance Measurements Capacity Planning Black Box (java) - No Application Visibility –Collect process data –Identify busy period –Analyze data –Review reports to identify hot spots Computer CPU utilization Computer summary Disk IO summary Network summary Memory summary Process summary – Java will usually be the top resource consumer

© 2007 ADP 7 Java Capacity Planning & Performance Measurements Capacity Planning Black Box (java) - No Application Visibility –Identify and eliminate all bottlenecks (analytically) –Apply and monitor changes to physical infrastructure –Once bottlenecks are eliminated Recollect performance data Use Analytical modeling to help determine Capacity = f(Hardware, Application Performance) –Tools Opnet IT GURU Hyperformix Capacity Manager Team Quest Performance Assurance

© 2007 ADP 8 Java Capacity Planning & Performance Measurements Application Capacity Planning (java) - Application Visibility –Coding Standards Application Specific Log –Non standard format –Each application log must be parsed by capacity planner –May or may not contain necessary data –Better than nothing –Tools Byte Code Engineering Library (BCEL) Java ClassLoader

© 2007 ADP 9 Java Capacity Planning & Performance Measurements Sample Code public final class test { test () { } public void runtest () { for ( int i = 0 ; i < ; i++ ) {} } public static void main(String[] argv) { try { for (int i = 0 ; i < 1; i++){ test t1 = new test(); t1.runtest(); for (int j = 0 ; j < 2 ; j++) new oohrah ( argv[0], argv[1] ) ; } } catch ( Exception e ) { e.printStackTrace(); } Sample Code public class oohrah { public oohrah( String a, String b ) { spin(); } public static void spin() { int i; new hello(); for (i=0; i < ; i++); } public class hello { public hello( ) { printHello(); } public static void printHello() { System.out.println ("HelloWorld (from hello)"); }

© 2007 ADP 10 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation - JDK 1.5

© 2007 ADP 11 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation - JDK 1.5 Start Class Name=test,Method Name main Elapsed CPU Start Class Name=test,Method Name runtest Elapsed CPU End Class Name=test,Method Name runtest Elapsed CPU ClassName=test runtestCount==> 1 ClassName=test runtestCpu==> ClassName=test mainCount==> 1 ClassName=test mainCpu==> 0 Start Class Name=oohrah,Method Name spin Elapsed CPU Start Class Name=hello,Method Name printHello Elapsed CPU HelloWorld (from hello) End Class Name=hello,Method Name printHello Elapsed CPU ClassName=hello printHelloCount==> 1 ClassName=hello printHelloCpu==> 0 End Class Name=oohrah,Method Name spin Elapsed CPU ClassName=oohrah spinCount==> 1 ClassName=oohrah spinCpu==> Start Class Name=oohrah,Method Name spin Elapsed CPU Start Class Name=hello,Method Name printHello Elapsed CPU HelloWorld (from hello) End Class Name=hello,Method Name printHello Elapsed CPU ClassName=hello printHelloCount==> 2 ClassName=hello printHelloCpu==> 0 End Class Name=oohrah,Method Name spin Elapsed CPU ClassName=oohrah spinCount==> 2 ClassName=oohrah spinCpu==> End Class Name=test,Method Name main Elapsed CPU ClassName=test runtestCount==> 1 ClassName=test runtestCpu==> ClassName=test mainCount==> 1 ClassName=test mainCpu==>

© 2007 ADP 12 Java Capacity Planning & Performance Measurements Application Capacity Planning (java) - Application Visibility ARM Instrument –Elapsed time –Invocation counts –Correlation –ArmTransactionsWithMetrics CPU time –Tools Byte Code Engineering Library (BCEL) Java ClassLoader

© 2007 ADP 13 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation - ARM

© 2007 ADP 14 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:34 06/13/07 transaction id= parent correlator: none flags=NONE application name=ApplicationDefinition test transaction name=TransactionDefinition test.main transaction instance handle=1

© 2007 ADP 15 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:34 06/13/07 transaction id= parent correlator: length=44 format=126 flags=0 app name=ApplicationDefinition test app handle=1 tran name=TransactionDefinition test.main tran instance id=1 flags=NONE application name=ApplicationDefinition test transaction name=TransactionDefinition test.runtest transaction instance handle=2 arm_stop_transaction() time=03:09:34 06/13/07 transaction instance handle=2 transaction status=GOOD flags=NONE application name=ApplicationDefinition test transaction name=TransactionDefinition test.runtest

© 2007 ADP 16 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:34 06/13/07 transaction id= parent correlator: length=44 format=126 flags=0 app name=ApplicationDefinition test app handle=1 tran name=TransactionDefinition test.main tran instance id=1 flags=NONE application name=ApplicationDefinition oohrah transaction name=TransactionDefinition oohrah.spin transaction instance handle=3

© 2007 ADP 17 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:34 06/13/07 transaction id= parent correlator: length=44 format=126 flags=0 app name=ApplicationDefinition oohrah app handle=3 tran name=TransactionDefinition oohrah.spin tran instance id=3 flags=NONE application name=ApplicationDefinition hello transaction name=TransactionDefinition hello.printHello transaction instance handle=4

© 2007 ADP 18 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_stop_transaction() time=03:09:34 06/13/07 transaction instance handle=4 transaction status=GOOD flags=NONE application name=ApplicationDefinition hello transaction name=TransactionDefinition hello.printHello arm_stop_transaction() time=03:09:35 06/13/07 transaction instance handle=3 transaction status=GOOD flags=NONE application name=ApplicationDefinition oohrah transaction name=TransactionDefinition oohrah.spin

© 2007 ADP 19 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:35 06/13/07 transaction id=0a parent correlator: length=44 format=126 flags=0 app name=ApplicationDefinition test app handle=1 tran name=TransactionDefinition test.main tran instance id=1 flags=NONE application name=ApplicationDefinition oohrah transaction name=TransactionDefinition oohrah.spin transaction instance handle=5

© 2007 ADP 20 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_start_transaction() time=03:09:35 06/13/07 transaction id=0c parent correlator: length=44 format=126 flags=0 app name=ApplicationDefinition oohrah app handle=5 tran name=TransactionDefinition oohrah.spin tran instance id=5 flags=NONE application name=ApplicationDefinition hello transaction name=TransactionDefinition hello.printHello transaction instance handle=6

© 2007 ADP 21 Java Capacity Planning & Performance Measurements Dynamic Byte Code Instrumentation – ARM arm_stop_transaction() time=03:09:35 06/13/07 transaction instance handle=6 transaction status=GOOD flags=NONE application name=ApplicationDefinition hello transaction name=TransactionDefinition hello.printHello arm_stop_transaction() time=03:09:35 06/13/07 transaction instance handle=5 transaction status=GOOD flags=NONE application name=ApplicationDefinition oohrah transaction name=TransactionDefinition oohrah.spin arm_stop_transaction() time=03:09:35 06/13/07 transaction instance handle=1 transaction status=GOOD flags=NONE application name=ApplicationDefinition test transaction name=TransactionDefinition test.main

© 2007 ADP 22 Java Capacity Planning & Performance Measurements Analyzing the Raw Data

© 2007 ADP 23 Java Capacity Planning & Performance Measurements Operational Analysis – Method Raw Data Process

© 2007 ADP 24 Java Capacity Planning & Performance Measurements Operational Analysis – Overloading Process  Method Method  Process Valid for Black box, and application capacity planning Denning, and J. Buzen, The operational analysis of queuing network models. Computer Surveys, 10(3), (1978)

© 2007 ADP 25 Java Capacity Planning & Performance Measurements Third Party Performance Analysis Tools -Unable to implement custom application logging -Unable to implement Dynamic Byte Code Instrumentation -Third party alternatives Mercury Opnet Panorama/ACE Quest Perform Assure Wily

© 2007 ADP 26 Java Capacity Planning & Performance Measurements Conclusion By adding a bit of sophistication during application development, performance testing, or production deployment the often overlooked non-functional requirement of “application performance” requirement can be addressed

© 2007 ADP 27 Java Capacity Planning & Performance Measurements Thank You for Attending – Have a nice rest of the day Questions Comments Discussion