SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
© 2014 IBM Corporation
AAI-2419 Practical Performance
Chris Bailey
Todd Kindsfather
Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change or
withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general product
direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment,
promise, or legal obligation to deliver any material, code or functionality. Information about
potential future products may not be incorporated into any contract. The development,
release, and timing of any future features or functionality described for our products remains
at our sole discretion.
Performance is based on measurements and projections using standard IBM benchmarks
in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including 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 results similar to those stated here.
Introduction to the Speakers
Chris Bailey
Java Serviceability and Cloud Integration Architect
• 13 years experience developing and deploying Java SDKs
• Recent work focus:
‒ Java integration into the cloud
‒ Java monitoring, diagnostics and troubleshooting
‒ Requirements gathering
‒ Highly resilient and scalable deployments
• Contact Details:
‒ baileyc@uk.ibm.com
‒ http://www.linkedin.com/in/chrisbaileyibm
‒ http://www.slideshare.net/cnbailey/
Introduction to the Speakers
Todd Kindsfather
Product Manager, IBM Application Performance Management
• 14 years at Tivoli (now called Cloud & Smarter Infrastructure), with 5 years as a
Services consultant and 9 as a product manager
• Recent work focus:
‒ Release of Application Performance Diagnostics on premise and SaaS diagnostics
offering
‒ Diagnostics in PaaS environments
‒ Requirements gathering and future release planning
• Contact Details:
‒ tkindsfa@us.ibm.com
‒ http://www.linkedin.com/in/toddkindsfather
‒ Twitter: @ToddKindsfather
5 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Goals of the Talk
■ Introduce a simple general methodology for performance analysis
■ Discuss the common performance bottlenecks
■ Show how to analyse a simple application
6 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Agenda
■ Approaches to performance
■ Layers of the application
■ Identifying and resolving performance issues
7 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Approaches to performance
■ Layered approach
– “Bottom up” or “Top down”
– Analyze and eliminate layers of the application
– Simplify the problem as you go
– Ideal for application health check
■ Outside in approach
– Start from where performance can be measured
– Work along the activity path
– Ideal for identified performance problems
■ A hybrid of both approaches can often be useful
8 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Performance baseline
■ Important to have a repeatable and representative performance test
■ Measure baseline performance
– Internal measurements affect the performance of what your measuring
– External measurements have less impact on system performance
■ Where possible, measure multiple times
– Variation will occur between test runs
■ Where possible, ensure consistency
– Not just the load test that's run
– State of machine and network can have interesting effects
9 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: baseline
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
10 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
A Layered Approach
■ Three layers of a deployment:
– Infrastructure: Machine hardware and Operating System
– Java Runtime: Garbage collection
– Java Application: Java application code
■ Each can suffer from resource constraints, typically:
– Memory
– CPU
– Synchronization
– I/O
Infrastructure
12 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Infrastructure
■ Typical resource constraints:
– Memory: insufficient physical memory results in paging/swapping
– CPU: insufficient CPU time limits throughput of the application
– I/O: insufficient I/O limits throughput of the application
– Synchronization driven by Java runtime/Java application
■ Easy to diagnose
■ Easy to resolve (relatively)
■ Note that each can also be caused by deficiencies higher up the stack!
13 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Infrastructure: Memory usage
■ Infrastructure uses memory for:
– Backing the process data: OS runtime, Java runtime, Java application
– Caching of IO: filesystem and network buffers
■ Lack of physical memory causes:
– Reduction and removal of IO caching
– Paging/swapping of process memory to disk
■ Paging/swapping is costly for a Java process
– Particularly affects Garbage Collection performance
• Paging usually occurs on Least Recently Used basis
• All of Java heap is traversed during mark and sweep phases
• Least Recently Used does not work well for the Java heap
14 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Infrastructure: CPU usage
■ Insufficient CPU time availability will reduce performance
■ Can occur periodically:
– Cron Jobs running batch applications
– Database backups
■ Or during periods of high load:
– System becomes CPU bound, limiting performance
15 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Detecting infrastructure issues
■ Operating System Tools (eg. “perfmon on Windows)
– Paging: using “perfmon” with “Process” counter for “Page Faults/sec”
– File Cache: using “perfmon” with “Memory” counter for “System Cache Resident Bytes”
– Per process: using “perfmon” with “Process” counter for “% Processor Time”
– Per machine: using “perfmon” with “Processor” counter for “% Processor Time”
– Network: using “perfmon” with “Network Interface” counter for “Output Queue Length”
– Disk: using “perfmon” with “Physical Disk” counter for “Current Disk Queue Length”
■ Health Center
Machine and Process CPU Usage
• Visualizes heap usage and gc pause times over time
• Identifies memory leaks
• Suggests command-line and tuning parameters
• Same recommendation logic as GCMV
Native Memory
•Detect native memory leaks in application
•Determine if external forces are using more memory
•Viewcomponents using the most native memory
16 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Paging in perfmon
17 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Resolving infrastructure issues
■ Add more physical resources to the process
– Assign more to the: Machine, Guest OS, LPAR, Zone, etc
■ Reduce the physical resource requirements
– Reduce the application footprint
– Reduce the application CPU usage
– Reduce the IO
18 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Baseline
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
19 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Paging removed
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Page URL
AvgLatency(microseconds)
20 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Effect on page performance
– PlantsByWebSphere 1.7%
– servlet_ShoppingServlet{2} 22.8%
– servlet_ShoppingServlet 0.3%
– Shopping{1} 0.4%
– Shopping{4} 21.4%
– Shopping_1_1 17.9%
– Shopping_2_2 2.8%
– Shopping_2_3 16.7%
– Shopping_2_4 24.1%
– Shopping_2_5 13.8%
■ Improvement in page performance of 0.3% to 24.1%
– Biggest gains were for those pages that were already fast
■ Biggest gains are on most performant pages. Total gain is only ~4%
■ Small effect on overall page performance
21 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Garbage Collection Pause Times
22 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Garbage Collection Pause Times
23 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Effect on Garbage Collection Pause Times
■ Reduction in:
– Maximum pause time: 38%
– Average pause time: 13%
– Time spent in GC 11%
■ Large effect on GC performance, particularly pause times
24 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Swapping/Paging and Java Applications
■ Swapping/Paging usually occurs on Least Recently Used basis
– Live but non-recently used data is written out to disk to free RAM for used data
■ Java however “uses” non-recently used data during GC
– In order to determine if the data is “live” and still required by the application.
– Any Java heap memory that has been swapped out, must be swapped in during GC
Java Heap
Recently used objects
Non-recently used objects
■ 10 objects are not recently used
25 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Swapping/Paging and Java Applications
■ Swapping/Paging usually occurs on Least Recently Used basis
– Live but non-recently used data is written out to disk to free RAM for used data
■ Java however “uses” non-recently used data during GC
– In order to determine if the data is “live” and still required by the application.
– Any Java heap memory that has been swapped out, must be swapped in during GC
Java Heap
Recently used objects
Non-recently used objects
Live objects according to GC mark phase
■ 4 objects are not recently used
– 6 objects needed to be swapped back in
26 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Swapping/Paging and Java Applications
■ Swapping/Paging usually occurs on Least Recently Used basis
– Live but non-recently used data is written out to disk to free RAM for used data
■ Java however “uses” non-recently used data during GC
– In order to determine if the data is “live” and still required by the application.
– Any Java heap memory that has been swapped out, must be swapped in during GC
Java Heap
Recently used objects
Non-recently used objects
Live objects according to GC mark phase
■ 0 objects are not recently used
– Further 4 objects locations needed to be swapped back in
Java Runtime
28 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Java runtime
■ Typical resource constraints:
– Memory: insufficient Java heap results in OutOfMemory or high GC overhead
– CPU garbage collection overhead, or driven by Java application
– Synchronization driven by Java application
– IO driven by Java application
■ Easy to diagnose
■ Easy to resolve (relatively)
29 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Detecting Java runtime problems
■ Log and trace analysis:
– “Native” heap: OS level logs (ps, svmon, perfmon)
– Java heap: verbose:gc output
■ Health Center
Native Memory
•Detect native memory leaks in application
•Determine if external forces are using more memory
•Viewcomponents using the most native memory
Garbage Collection visualization
• Visualizes heap usage and gc pause times over time
• Identifies memory leaks
• Suggests command-line and tuning parameters
• Same recommendation logic as GCMV
30 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Too Frequent Garbage Collection
© 2011 IBM Corporation31 JavaOne Session 23401 – The Hidden World of Your Java Application and What its Really Doing
Too Frequent Garbage Collection
Long Garbage Collection Cycles
Garbage collection performanceMemory
Time
Heap Size
Heap Occupancy
32 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Resolving Java runtime problems
■ Add more resources to the Java runtime
– Java heap: Increase Java heap size
– Native heap: Move to 64bit or reduce Java heap size
■ Reduce the memory requirements
– Reduce the Java application footprint
33 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Increased Java heap size
34 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Effect on Garbage Collection Pause Times
■ Reduction in:
– Time spent in GC 59%
■ However this is only 4.84% of total time
35 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Baseline
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
36 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Paging removed
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Page URL
AvgLatency(microseconds)
37 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Java Heap size increased
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Bigger Heap
Page URL
AvgLatency(microseconds)
38 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page performance improvements
– PlantsByWebSphere 0.4%
– servlet_ShoppingServlet 0.0%
– servlet_ShoppingServlet{2} 33.2%
– Shopping{1} +0.6%
– Shopping{4} 4.5%
– Shopping_1_1 2.9%
– Shopping_2_2 0.1%
– Shopping_2_3 2.1%
– Shopping_2_4 14.2%
– Shopping_2_5 8.2%
■ Improvement in page performance of -0.6% to 33.2%
– Without outliers: 0.0% to 14.2%
■ Total gain is only ~4%
– Relatively small effect on overall page performance
Java Application
40 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Java application
■ Typical resource constraints:
– Memory: insufficient caching affects application throughput and responsiveness
– CPU: insufficient threading causes limits on scalability
– Synchronsation: synchronized resources limits scalability and throughput of the application
– I/O: blocking on I/O limits throughput and responsiveness
■ Hard to diagnose
■ Can be expensive (or impossible!) to resolve
41 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Java application CPU usage
■ High CPU usage by Java methods highlight areas of potential optimization
– Code is being invoked more than it needs to be
• Easily done with event driven models
– An algorithm is not the most efficient
• Easily done if performance is not the focus at development time
■ Fixing CPU bound applications requires knowledge of what code is being run
– Identify methods which are suitable for optimisation
• Optimising methods which the application doesn’t spend time in is a waste of your time
– Identify methods where more time is being spent that you expect
• “Why is so much of time being spent in this trivial method?”
42 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Java application synchronization
■ Throughput does not increase linearly with load
■ At limit of throughput the CPU is still low
– Inability to scale
– Not all CPU can be utilized
– Limit on throughput and responsiveness
■ Bottleneck where threads need to synchronize with each other for application correctness
– Caused by large numbers of threads requiring synchronized resource at the same time
– Caused by long hold time by thread that owns resource
– Or a mixture of both
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
1. Performance Overview
• Request summary highlights slowest
requests
• Plots response times / CPU over time
• Breakdown to show hot spots
• Distribution chart shows percentage of
requests that are slow
2. Drill down to view Request Instances
• Breakdown of response time or CPU for
individual requests
3. Determine the root cause
• Select a request instance to view a method
tree that visually identifies bottlenecks
• Stack trace is viewable in context
• Aggregated method calls also available
• Link to application source in IDE
Java Application (using APD Lite)
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
1
APD Lite Performance Overview
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Right click the highlighted row
and select “Show Context/Stack
Data”
Drill down to Tree View
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Right click the highlighted row
and select “Show Context/Stack
Data” to see SQL call details
Drill down to tree view for more complex case
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Right click the highlighted row
and select “Show Context/Stack
Data”
Drill down to Tree View
48 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Health Center: application method CPU usage
49 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Health Center: application synchronization
50 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
ShoppingServlet.deliberateSlowMethod()
private void deliberateSlowMethod() {
// ----------------------------------------------------------------
// User clicked on the Tulips, let's tip toe through a
// slow method
// ----------------------------------------------------------------
System.out.println("==> STARTING SLOW METHOD");
long timestamp = System.currentTimeMillis();
long target = timestamp + SLOWTIME;
System.out.println("timestamp="+timestamp);
System.out.println("resume at="+target);
while(timestamp < target) {
timestamp = System.currentTimeMillis();
}
System.out.println("==> ENDING SLOW METHOD");
}
51 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Baseline
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
52 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Paging removed
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
Page URL
AvgLatency(microseconds)
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Page URL
AvgLatency(microseconds)
53 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Java Heap size increased
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Bigger Heap
Page URL
AvgLatency(microseconds)
54 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: deliberateSlowMethod() changed
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Bigger Heap
App Fix
Page URL
AvgLatency(microseconds)
55 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page performance improvements
■ servlet_ShoppingServlet 80.8% 5x improvement
■ Shopping{1} 94.3% 20x improvement
■ Improvement in page performance of 80 and 95%
– 5x and 20x improvement for affected pages
■ Total gain of 48%!
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
1
APD Lite Performance Overview
57 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Health Center: application method CPU usage
58 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Health Center: application synchronization
59 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Page response performance benchmark: Summary
PlantsByWebSphere
servlet_ShoppingServlet
servlet_ShoppingServlet{2}
Shopping{1}
Shopping{4}
Shopping_1_1
Shopping_2_2
Shopping_2_3
Shopping_2_4
Shopping_2_5
0
5000
10000
15000
20000
Page Performance
PlantsbyWebSphere
Baseline
No Paging
Bigger Heap
App Fix
Page URL
AvgLatency(microseconds)
60 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Summary
■ Increasing performance of applications is possible using:
– Repeatable benchmark
– Incremental measurements as changes are made
– Repeated testing and verification
■ Infrastructure resources affect performance, but vast majority of performance gains are in the
application!
■ Free tools are available to help you see what's going on:
– Operating System tools: perfmon, vmstat, ps, svmon, etc
– verbose:gc
– APD Lite
– HealthCenter
■ But you need to use multiple tools to get a complete picture.....
■ Surely there's an easier way?
Java Application
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
1. APD Lite
– Pre-Production only
– Collects real time data
– Value in 15 minutes
– Key features
• On demand collection of code
level data in pre-production
environments
• Plugs into Eclipse IDE for
launch to application source
2. APD Standard
– Available as SaaS or on
premises
– Suited for all environments
– Collects real time and short-
term trend data
– Value in 15 minutes
– Key features
• Identify app server health at a
glance and view KPIs
• Automatic collection of code
level data in pre-production or
production for diagnosis
• Leverages lightweight
infrastructure for seamless
monitoring across
applications
APD Lite
Development Test Production
APD Standard
IBM Application Performance Diagnostics Overview
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
1. Identify there is a slowdown in response time/throughput for transactions for a JVM over
time
2. Identify, Isolate and Diagnose if an application response issue is caused by a WebSphere
resource issue:
• Heap / GC
• Thread Pool
• DB Connection Pool etc
3. Diagnose if an application response issue is caused by application code
4. Report slow transactions, SQLs, etc. with method tracing turned on dynamically
5. Alternative to Traps
Typical User Scenarios
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Diagnose if an application response issue is caused by
application code
(Slow transaction – Bad SQL etc)
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Transaction with High
Response Time – All
other metrics look ok
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Transaction with High
Response Time – We
should look at the
Sequence Data
© 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Problem
SQL
68 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
Summary
■ Infrastructure resources affect performance
– Paging and Garbage Collection much less than you might expect
– However, beware of CPU “starvation” from other processes!
■ Vast majority of performance gains are in the application!
69 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application
References
■ Get Products and Technologies:
– IBM Monitoring and Diagnostic Tools for Java:
• https://www.ibm.com/developerworks/java/jdk/tools/
■ Learn:
– Health Center InfoCenter:
• http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp
■ Discuss:
– IBM on Troubleshooting Java Applications Blog:
• https://www.ibm.com/developerworks/mydeveloperworks/blogs/troubleshootingjava/
– Health Center Forum:
• http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1461
– IBM Java Runtimes and SDKs Forum:
• http://www.ibm.com/developerworks/forums/forum.jspa?forumID=367&start=0
Questions?
We Value Your Feedback
Don’t forget to submit your Impact session and speaker feedback!
Your feedback is very important to us – we use it to continually
improve the conference.
Use the Conference Mobile App or the online Agenda Builder to quickly
submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
71
Thank You
Legal Disclaimer
• © IBM Corporation 2014. All Rights Reserved.
• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication,
it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without
notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor
shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of
IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced
in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in
any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or
other results.
• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary
depending upon many factors, including 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 results similar to those stated here.
• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and
performance characteristics may vary by customer.
• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime®
Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to
http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names
must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus,
Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other
countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:
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.
• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:
Intel, Intel Centrino, 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.
• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:
UNIX is a registered trademark of The Open Group in the United States and other countries.
• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme)
please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.

Más contenido relacionado

La actualidad más candente

IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8Chris Bailey
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center DetailsRohit Kelapure
 
Swift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerSwift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerChris Bailey
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App ArchitecturesChris Bailey
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from DumpsChris Bailey
 
Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Chris Bailey
 
JavaOne2013: Securing Java in the Server Room - Tim Ellison
JavaOne2013: Securing Java in the Server Room - Tim EllisonJavaOne2013: Securing Java in the Server Room - Tim Ellison
JavaOne2013: Securing Java in the Server Room - Tim EllisonChris Bailey
 
JavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine CodeJavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine CodeChris Bailey
 
JavaOne 2014: Java Debugging
JavaOne 2014: Java DebuggingJavaOne 2014: Java Debugging
JavaOne 2014: Java DebuggingChris Bailey
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?Tim Ellison
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
 
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudMigrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudJohn Donaldson
 
How to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning BattleHow to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning BattleCapgemini
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Andreas Koop
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application serverRohit Kelapure
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
Scaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionScaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionMichael Marth
 
Monitoring and Tuning Oracle FMW 11g
Monitoring and Tuning Oracle FMW 11gMonitoring and Tuning Oracle FMW 11g
Monitoring and Tuning Oracle FMW 11gMatthias Furrer
 

La actualidad más candente (20)

IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center Details
 
Swift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerSwift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the Server
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App Architectures
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from Dumps
 
Cloud Economics
Cloud EconomicsCloud Economics
Cloud Economics
 
Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...
 
JavaOne2013: Securing Java in the Server Room - Tim Ellison
JavaOne2013: Securing Java in the Server Room - Tim EllisonJavaOne2013: Securing Java in the Server Room - Tim Ellison
JavaOne2013: Securing Java in the Server Room - Tim Ellison
 
JavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine CodeJavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine Code
 
JavaOne 2014: Java Debugging
JavaOne 2014: Java DebuggingJavaOne 2014: Java Debugging
JavaOne 2014: Java Debugging
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
 
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudMigrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
 
How to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning BattleHow to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning Battle
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application server
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
Scaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem SessionScaling AEM (CQ5) Gem Session
Scaling AEM (CQ5) Gem Session
 
2014 cf summit_clustering
2014 cf summit_clustering2014 cf summit_clustering
2014 cf summit_clustering
 
Monitoring and Tuning Oracle FMW 11g
Monitoring and Tuning Oracle FMW 11gMonitoring and Tuning Oracle FMW 11g
Monitoring and Tuning Oracle FMW 11g
 

Similar a Impact2014: Practical Performance Troubleshooting

Lessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectLessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectMark Roden
 
UrbanCode Deploy DevOps Best Practices
UrbanCode Deploy  DevOps Best PracticesUrbanCode Deploy  DevOps Best Practices
UrbanCode Deploy DevOps Best PracticesMichael Elder
 
Accelerate Your Signature Banking Applications with IBM Storage Offerings
Accelerate Your Signature Banking Applications with IBM Storage OfferingsAccelerate Your Signature Banking Applications with IBM Storage Offerings
Accelerate Your Signature Banking Applications with IBM Storage OfferingsPaula Koziol
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Dakiry
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
1457 - Reviewing Experiences from the PureExperience Program
1457 - Reviewing Experiences from the PureExperience Program1457 - Reviewing Experiences from the PureExperience Program
1457 - Reviewing Experiences from the PureExperience ProgramHendrik van Run
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringMichael Dawson
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsDevOps for Enterprise Systems
 
Ims01 ims trends and directions - IMS UG May 2014 Sydney & Melbourne
Ims01   ims trends and directions - IMS UG May 2014 Sydney & MelbourneIms01   ims trends and directions - IMS UG May 2014 Sydney & Melbourne
Ims01 ims trends and directions - IMS UG May 2014 Sydney & MelbourneRobert Hain
 
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...IBM Analytics
 
Architecting with power vm
Architecting with power vmArchitecting with power vm
Architecting with power vmCharlie Cler
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Prolifics
 
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14p6academy
 
Storage Sizing for SAP
Storage Sizing for SAPStorage Sizing for SAP
Storage Sizing for SAPCenk Ersoy
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3Leigh Williamson
 

Similar a Impact2014: Practical Performance Troubleshooting (20)

Lessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectLessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage project
 
UrbanCode Deploy DevOps Best Practices
UrbanCode Deploy  DevOps Best PracticesUrbanCode Deploy  DevOps Best Practices
UrbanCode Deploy DevOps Best Practices
 
Neev Load Testing Services
Neev Load Testing ServicesNeev Load Testing Services
Neev Load Testing Services
 
Accelerate Your Signature Banking Applications with IBM Storage Offerings
Accelerate Your Signature Banking Applications with IBM Storage OfferingsAccelerate Your Signature Banking Applications with IBM Storage Offerings
Accelerate Your Signature Banking Applications with IBM Storage Offerings
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
1457 - Reviewing Experiences from the PureExperience Program
1457 - Reviewing Experiences from the PureExperience Program1457 - Reviewing Experiences from the PureExperience Program
1457 - Reviewing Experiences from the PureExperience Program
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise Environments
 
IOD 2012_ADP_092912
IOD 2012_ADP_092912 IOD 2012_ADP_092912
IOD 2012_ADP_092912
 
Ims01 ims trends and directions - IMS UG May 2014 Sydney & Melbourne
Ims01   ims trends and directions - IMS UG May 2014 Sydney & MelbourneIms01   ims trends and directions - IMS UG May 2014 Sydney & Melbourne
Ims01 ims trends and directions - IMS UG May 2014 Sydney & Melbourne
 
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
TDWI San Diego 2014: Wendy Lucas Describes how BLU Acceleration Delivers In-T...
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
Architecting with power vm
Architecting with power vmArchitecting with power vm
Architecting with power vm
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
 
Developer want change Ops want control - devops
Developer want change Ops want control - devopsDeveloper want change Ops want control - devops
Developer want change Ops want control - devops
 
Storage Sizing for SAP
Storage Sizing for SAPStorage Sizing for SAP
Storage Sizing for SAP
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3
 

Más de Chris Bailey

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets FrameworksChris Bailey
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSVoxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSChris Bailey
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldSilicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldChris Bailey
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedChris Bailey
 
AltConf 2019: Server-Side Swift State of the Union
AltConf 2019:  Server-Side Swift State of the UnionAltConf 2019:  Server-Side Swift State of the Union
AltConf 2019: Server-Side Swift State of the UnionChris Bailey
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with SwaggerChris Bailey
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsChris Bailey
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQLChris Bailey
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesChris Bailey
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftSwift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftChris Bailey
 
Try!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftTry!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftChris Bailey
 
Swift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionSwift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionChris Bailey
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesChris Bailey
 
IBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftIBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftChris Bailey
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesChris Bailey
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftChris Bailey
 
AltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesAltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesChris Bailey
 
InterConnect: Server Side Swift for Java Developers
InterConnect:  Server Side Swift for Java DevelopersInterConnect:  Server Side Swift for Java Developers
InterConnect: Server Side Swift for Java DevelopersChris Bailey
 
InterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenInterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenChris Bailey
 
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFChris Bailey
 

Más de Chris Bailey (20)

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSVoxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldSilicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
 
AltConf 2019: Server-Side Swift State of the Union
AltConf 2019:  Server-Side Swift State of the UnionAltConf 2019:  Server-Side Swift State of the Union
AltConf 2019: Server-Side Swift State of the Union
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftSwift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack Swift
 
Try!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftTry!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is Swift
 
Swift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionSwift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the Union
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
IBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftIBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and Swift
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift
 
AltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesAltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 Minutes
 
InterConnect: Server Side Swift for Java Developers
InterConnect:  Server Side Swift for Java DevelopersInterConnect:  Server Side Swift for Java Developers
InterConnect: Server Side Swift for Java Developers
 
InterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenInterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and When
 
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Impact2014: Practical Performance Troubleshooting

  • 1. © 2014 IBM Corporation AAI-2419 Practical Performance Chris Bailey Todd Kindsfather
  • 2. Please Note IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including 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 results similar to those stated here.
  • 3. Introduction to the Speakers Chris Bailey Java Serviceability and Cloud Integration Architect • 13 years experience developing and deploying Java SDKs • Recent work focus: ‒ Java integration into the cloud ‒ Java monitoring, diagnostics and troubleshooting ‒ Requirements gathering ‒ Highly resilient and scalable deployments • Contact Details: ‒ baileyc@uk.ibm.com ‒ http://www.linkedin.com/in/chrisbaileyibm ‒ http://www.slideshare.net/cnbailey/
  • 4. Introduction to the Speakers Todd Kindsfather Product Manager, IBM Application Performance Management • 14 years at Tivoli (now called Cloud & Smarter Infrastructure), with 5 years as a Services consultant and 9 as a product manager • Recent work focus: ‒ Release of Application Performance Diagnostics on premise and SaaS diagnostics offering ‒ Diagnostics in PaaS environments ‒ Requirements gathering and future release planning • Contact Details: ‒ tkindsfa@us.ibm.com ‒ http://www.linkedin.com/in/toddkindsfather ‒ Twitter: @ToddKindsfather
  • 5. 5 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Goals of the Talk ■ Introduce a simple general methodology for performance analysis ■ Discuss the common performance bottlenecks ■ Show how to analyse a simple application
  • 6. 6 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Agenda ■ Approaches to performance ■ Layers of the application ■ Identifying and resolving performance issues
  • 7. 7 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Approaches to performance ■ Layered approach – “Bottom up” or “Top down” – Analyze and eliminate layers of the application – Simplify the problem as you go – Ideal for application health check ■ Outside in approach – Start from where performance can be measured – Work along the activity path – Ideal for identified performance problems ■ A hybrid of both approaches can often be useful
  • 8. 8 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Performance baseline ■ Important to have a repeatable and representative performance test ■ Measure baseline performance – Internal measurements affect the performance of what your measuring – External measurements have less impact on system performance ■ Where possible, measure multiple times – Variation will occur between test runs ■ Where possible, ensure consistency – Not just the load test that's run – State of machine and network can have interesting effects
  • 9. 9 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: baseline PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds)
  • 10. 10 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application A Layered Approach ■ Three layers of a deployment: – Infrastructure: Machine hardware and Operating System – Java Runtime: Garbage collection – Java Application: Java application code ■ Each can suffer from resource constraints, typically: – Memory – CPU – Synchronization – I/O
  • 12. 12 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Infrastructure ■ Typical resource constraints: – Memory: insufficient physical memory results in paging/swapping – CPU: insufficient CPU time limits throughput of the application – I/O: insufficient I/O limits throughput of the application – Synchronization driven by Java runtime/Java application ■ Easy to diagnose ■ Easy to resolve (relatively) ■ Note that each can also be caused by deficiencies higher up the stack!
  • 13. 13 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Infrastructure: Memory usage ■ Infrastructure uses memory for: – Backing the process data: OS runtime, Java runtime, Java application – Caching of IO: filesystem and network buffers ■ Lack of physical memory causes: – Reduction and removal of IO caching – Paging/swapping of process memory to disk ■ Paging/swapping is costly for a Java process – Particularly affects Garbage Collection performance • Paging usually occurs on Least Recently Used basis • All of Java heap is traversed during mark and sweep phases • Least Recently Used does not work well for the Java heap
  • 14. 14 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Infrastructure: CPU usage ■ Insufficient CPU time availability will reduce performance ■ Can occur periodically: – Cron Jobs running batch applications – Database backups ■ Or during periods of high load: – System becomes CPU bound, limiting performance
  • 15. 15 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Detecting infrastructure issues ■ Operating System Tools (eg. “perfmon on Windows) – Paging: using “perfmon” with “Process” counter for “Page Faults/sec” – File Cache: using “perfmon” with “Memory” counter for “System Cache Resident Bytes” – Per process: using “perfmon” with “Process” counter for “% Processor Time” – Per machine: using “perfmon” with “Processor” counter for “% Processor Time” – Network: using “perfmon” with “Network Interface” counter for “Output Queue Length” – Disk: using “perfmon” with “Physical Disk” counter for “Current Disk Queue Length” ■ Health Center Machine and Process CPU Usage • Visualizes heap usage and gc pause times over time • Identifies memory leaks • Suggests command-line and tuning parameters • Same recommendation logic as GCMV Native Memory •Detect native memory leaks in application •Determine if external forces are using more memory •Viewcomponents using the most native memory
  • 16. 16 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Paging in perfmon
  • 17. 17 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Resolving infrastructure issues ■ Add more physical resources to the process – Assign more to the: Machine, Guest OS, LPAR, Zone, etc ■ Reduce the physical resource requirements – Reduce the application footprint – Reduce the application CPU usage – Reduce the IO
  • 18. 18 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Baseline PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds)
  • 19. 19 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Paging removed PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds) PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Page URL AvgLatency(microseconds)
  • 20. 20 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Effect on page performance – PlantsByWebSphere 1.7% – servlet_ShoppingServlet{2} 22.8% – servlet_ShoppingServlet 0.3% – Shopping{1} 0.4% – Shopping{4} 21.4% – Shopping_1_1 17.9% – Shopping_2_2 2.8% – Shopping_2_3 16.7% – Shopping_2_4 24.1% – Shopping_2_5 13.8% ■ Improvement in page performance of 0.3% to 24.1% – Biggest gains were for those pages that were already fast ■ Biggest gains are on most performant pages. Total gain is only ~4% ■ Small effect on overall page performance
  • 21. 21 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Garbage Collection Pause Times
  • 22. 22 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Garbage Collection Pause Times
  • 23. 23 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Effect on Garbage Collection Pause Times ■ Reduction in: – Maximum pause time: 38% – Average pause time: 13% – Time spent in GC 11% ■ Large effect on GC performance, particularly pause times
  • 24. 24 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Swapping/Paging and Java Applications ■ Swapping/Paging usually occurs on Least Recently Used basis – Live but non-recently used data is written out to disk to free RAM for used data ■ Java however “uses” non-recently used data during GC – In order to determine if the data is “live” and still required by the application. – Any Java heap memory that has been swapped out, must be swapped in during GC Java Heap Recently used objects Non-recently used objects ■ 10 objects are not recently used
  • 25. 25 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Swapping/Paging and Java Applications ■ Swapping/Paging usually occurs on Least Recently Used basis – Live but non-recently used data is written out to disk to free RAM for used data ■ Java however “uses” non-recently used data during GC – In order to determine if the data is “live” and still required by the application. – Any Java heap memory that has been swapped out, must be swapped in during GC Java Heap Recently used objects Non-recently used objects Live objects according to GC mark phase ■ 4 objects are not recently used – 6 objects needed to be swapped back in
  • 26. 26 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Swapping/Paging and Java Applications ■ Swapping/Paging usually occurs on Least Recently Used basis – Live but non-recently used data is written out to disk to free RAM for used data ■ Java however “uses” non-recently used data during GC – In order to determine if the data is “live” and still required by the application. – Any Java heap memory that has been swapped out, must be swapped in during GC Java Heap Recently used objects Non-recently used objects Live objects according to GC mark phase ■ 0 objects are not recently used – Further 4 objects locations needed to be swapped back in
  • 28. 28 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Java runtime ■ Typical resource constraints: – Memory: insufficient Java heap results in OutOfMemory or high GC overhead – CPU garbage collection overhead, or driven by Java application – Synchronization driven by Java application – IO driven by Java application ■ Easy to diagnose ■ Easy to resolve (relatively)
  • 29. 29 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Detecting Java runtime problems ■ Log and trace analysis: – “Native” heap: OS level logs (ps, svmon, perfmon) – Java heap: verbose:gc output ■ Health Center Native Memory •Detect native memory leaks in application •Determine if external forces are using more memory •Viewcomponents using the most native memory Garbage Collection visualization • Visualizes heap usage and gc pause times over time • Identifies memory leaks • Suggests command-line and tuning parameters • Same recommendation logic as GCMV
  • 30. 30 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Too Frequent Garbage Collection
  • 31. © 2011 IBM Corporation31 JavaOne Session 23401 – The Hidden World of Your Java Application and What its Really Doing Too Frequent Garbage Collection Long Garbage Collection Cycles Garbage collection performanceMemory Time Heap Size Heap Occupancy
  • 32. 32 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Resolving Java runtime problems ■ Add more resources to the Java runtime – Java heap: Increase Java heap size – Native heap: Move to 64bit or reduce Java heap size ■ Reduce the memory requirements – Reduce the Java application footprint
  • 33. 33 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Increased Java heap size
  • 34. 34 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Effect on Garbage Collection Pause Times ■ Reduction in: – Time spent in GC 59% ■ However this is only 4.84% of total time
  • 35. 35 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Baseline PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds)
  • 36. 36 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Paging removed PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds) PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Page URL AvgLatency(microseconds)
  • 37. 37 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Java Heap size increased PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Bigger Heap Page URL AvgLatency(microseconds)
  • 38. 38 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page performance improvements – PlantsByWebSphere 0.4% – servlet_ShoppingServlet 0.0% – servlet_ShoppingServlet{2} 33.2% – Shopping{1} +0.6% – Shopping{4} 4.5% – Shopping_1_1 2.9% – Shopping_2_2 0.1% – Shopping_2_3 2.1% – Shopping_2_4 14.2% – Shopping_2_5 8.2% ■ Improvement in page performance of -0.6% to 33.2% – Without outliers: 0.0% to 14.2% ■ Total gain is only ~4% – Relatively small effect on overall page performance
  • 40. 40 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Java application ■ Typical resource constraints: – Memory: insufficient caching affects application throughput and responsiveness – CPU: insufficient threading causes limits on scalability – Synchronsation: synchronized resources limits scalability and throughput of the application – I/O: blocking on I/O limits throughput and responsiveness ■ Hard to diagnose ■ Can be expensive (or impossible!) to resolve
  • 41. 41 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Java application CPU usage ■ High CPU usage by Java methods highlight areas of potential optimization – Code is being invoked more than it needs to be • Easily done with event driven models – An algorithm is not the most efficient • Easily done if performance is not the focus at development time ■ Fixing CPU bound applications requires knowledge of what code is being run – Identify methods which are suitable for optimisation • Optimising methods which the application doesn’t spend time in is a waste of your time – Identify methods where more time is being spent that you expect • “Why is so much of time being spent in this trivial method?”
  • 42. 42 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Java application synchronization ■ Throughput does not increase linearly with load ■ At limit of throughput the CPU is still low – Inability to scale – Not all CPU can be utilized – Limit on throughput and responsiveness ■ Bottleneck where threads need to synchronize with each other for application correctness – Caused by large numbers of threads requiring synchronized resource at the same time – Caused by long hold time by thread that owns resource – Or a mixture of both
  • 43. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application 1. Performance Overview • Request summary highlights slowest requests • Plots response times / CPU over time • Breakdown to show hot spots • Distribution chart shows percentage of requests that are slow 2. Drill down to view Request Instances • Breakdown of response time or CPU for individual requests 3. Determine the root cause • Select a request instance to view a method tree that visually identifies bottlenecks • Stack trace is viewable in context • Aggregated method calls also available • Link to application source in IDE Java Application (using APD Lite)
  • 44. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application 1 APD Lite Performance Overview
  • 45. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Right click the highlighted row and select “Show Context/Stack Data” Drill down to Tree View
  • 46. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Right click the highlighted row and select “Show Context/Stack Data” to see SQL call details Drill down to tree view for more complex case
  • 47. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Right click the highlighted row and select “Show Context/Stack Data” Drill down to Tree View
  • 48. 48 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Health Center: application method CPU usage
  • 49. 49 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Health Center: application synchronization
  • 50. 50 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application ShoppingServlet.deliberateSlowMethod() private void deliberateSlowMethod() { // ---------------------------------------------------------------- // User clicked on the Tulips, let's tip toe through a // slow method // ---------------------------------------------------------------- System.out.println("==> STARTING SLOW METHOD"); long timestamp = System.currentTimeMillis(); long target = timestamp + SLOWTIME; System.out.println("timestamp="+timestamp); System.out.println("resume at="+target); while(timestamp < target) { timestamp = System.currentTimeMillis(); } System.out.println("==> ENDING SLOW METHOD"); }
  • 51. 51 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Baseline PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds)
  • 52. 52 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Paging removed PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline Page URL AvgLatency(microseconds) PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Page URL AvgLatency(microseconds)
  • 53. 53 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Java Heap size increased PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Bigger Heap Page URL AvgLatency(microseconds)
  • 54. 54 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: deliberateSlowMethod() changed PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Bigger Heap App Fix Page URL AvgLatency(microseconds)
  • 55. 55 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page performance improvements ■ servlet_ShoppingServlet 80.8% 5x improvement ■ Shopping{1} 94.3% 20x improvement ■ Improvement in page performance of 80 and 95% – 5x and 20x improvement for affected pages ■ Total gain of 48%!
  • 56. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application 1 APD Lite Performance Overview
  • 57. 57 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Health Center: application method CPU usage
  • 58. 58 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Health Center: application synchronization
  • 59. 59 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Page response performance benchmark: Summary PlantsByWebSphere servlet_ShoppingServlet servlet_ShoppingServlet{2} Shopping{1} Shopping{4} Shopping_1_1 Shopping_2_2 Shopping_2_3 Shopping_2_4 Shopping_2_5 0 5000 10000 15000 20000 Page Performance PlantsbyWebSphere Baseline No Paging Bigger Heap App Fix Page URL AvgLatency(microseconds)
  • 60. 60 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Summary ■ Increasing performance of applications is possible using: – Repeatable benchmark – Incremental measurements as changes are made – Repeated testing and verification ■ Infrastructure resources affect performance, but vast majority of performance gains are in the application! ■ Free tools are available to help you see what's going on: – Operating System tools: perfmon, vmstat, ps, svmon, etc – verbose:gc – APD Lite – HealthCenter ■ But you need to use multiple tools to get a complete picture..... ■ Surely there's an easier way?
  • 62. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application 1. APD Lite – Pre-Production only – Collects real time data – Value in 15 minutes – Key features • On demand collection of code level data in pre-production environments • Plugs into Eclipse IDE for launch to application source 2. APD Standard – Available as SaaS or on premises – Suited for all environments – Collects real time and short- term trend data – Value in 15 minutes – Key features • Identify app server health at a glance and view KPIs • Automatic collection of code level data in pre-production or production for diagnosis • Leverages lightweight infrastructure for seamless monitoring across applications APD Lite Development Test Production APD Standard IBM Application Performance Diagnostics Overview
  • 63. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application 1. Identify there is a slowdown in response time/throughput for transactions for a JVM over time 2. Identify, Isolate and Diagnose if an application response issue is caused by a WebSphere resource issue: • Heap / GC • Thread Pool • DB Connection Pool etc 3. Diagnose if an application response issue is caused by application code 4. Report slow transactions, SQLs, etc. with method tracing turned on dynamically 5. Alternative to Traps Typical User Scenarios
  • 64. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Diagnose if an application response issue is caused by application code (Slow transaction – Bad SQL etc)
  • 65. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Transaction with High Response Time – All other metrics look ok
  • 66. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Transaction with High Response Time – We should look at the Sequence Data
  • 67. © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Problem SQL
  • 68. 68 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application Summary ■ Infrastructure resources affect performance – Paging and Garbage Collection much less than you might expect – However, beware of CPU “starvation” from other processes! ■ Vast majority of performance gains are in the application!
  • 69. 69 © 2012 IBM CorporationPractical Performance: Understand and Improve the Performance of Your Application References ■ Get Products and Technologies: – IBM Monitoring and Diagnostic Tools for Java: • https://www.ibm.com/developerworks/java/jdk/tools/ ■ Learn: – Health Center InfoCenter: • http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp ■ Discuss: – IBM on Troubleshooting Java Applications Blog: • https://www.ibm.com/developerworks/mydeveloperworks/blogs/troubleshootingjava/ – Health Center Forum: • http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1461 – IBM Java Runtimes and SDKs Forum: • http://www.ibm.com/developerworks/forums/forum.jspa?forumID=367&start=0
  • 71. We Value Your Feedback Don’t forget to submit your Impact session and speaker feedback! Your feedback is very important to us – we use it to continually improve the conference. Use the Conference Mobile App or the online Agenda Builder to quickly submit your survey • Navigate to “Surveys” to see a view of surveys for sessions you’ve attended 71
  • 73. Legal Disclaimer • © IBM Corporation 2014. All Rights Reserved. • The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. • References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. • If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete: Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including 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 results similar to those stated here. • If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete: All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. • Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. • If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete: 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. • If you reference Java™ in the text, please mark the first use and include the following; otherwise delete: Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. • If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete: Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. • If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete: Intel, Intel Centrino, 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. • If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete: UNIX is a registered trademark of The Open Group in the United States and other countries. • If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete: Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. • If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.