java architect lead performance engineer FIS Global @EOstermueller

Slides:



Advertisements
Similar presentations
DynaTrace Platform.
Advertisements

Java Virtual Machine Profiling
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Keeping our websites running - troubleshooting with Appdynamics Benoit Villaumie Lead Architect Guillaume Postaire Infrastructure Manager.
THE ART AND METHODOLOGY OF TROUBLESHOOTING Alexey Diomin,
Troubleshooting Techniques Lesson 29. Skills Matrix.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Deterministic Replay of Java Multithreaded Applications Jong-Deok Choi and Harini Srinivasan slides made by Qing Zhang.
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
Introduction and simple using of Oracle Logistics Information System Yaxian Yao
Troubleshooting SQL Server Enterprise Geodatabase Performance Issues
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
1 Lecture 19 Configuration Management Software Engineering.
Bill Au CBS Interactive Troubleshooting Slow or Hung Java Applications.
Bill Au CBS Interactive Troubleshooting Slow or Hung Java Applications.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Open Source Performance Monitoring Tools, Tips and Tricks for Java Matt Secoske Consultant - Bass & Associates
AUTOMATION OF WEB-FORM CREATION - KINNERA ANGADI – MS FINAL DEFENSE GUIDANCE BY – DR. DANIEL ANDRESEN.
ASP/ASP.NET: Tricks and Tips How to get Microsoft’s Programming Language to work for you By Wade Tripp Park University
Monitoring and Management Mihail Stoynov mihail.stoynov.com mihail.stoynov.com.
Installing, Configuring And Troubleshooting Coldfusion Mark A Kruger CFG Ryan Stille CF Webtools.
Send all X-Ray’s to All X-Ray’s received by App Man will be scrubbed of any Customer Names or Identity using.
Click to add text © 2012 IBM Corporation Design Manager Server Instrumentation Instrumentation Data Documentation Gary Johnston, Performance Focal Point,
Datalayer Notebook Allows Data Scientists to Play with Big Data, Build Innovative Models, and Share Results Easily on Microsoft Azure MICROSOFT AZURE ISV.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
Java Monitoring Java monitoring using Glassfish, JMX, Glassbox and JConsole by Greg Heithaus.
#SummitNow A Day in the Life of an Alfresco Admin November 2013 Antonio Soler Premier Support Engineer Alfresco Software Ltd.
Profile, HAT, Wireless Toolkit’s Profile Sookmyung Women’s Univ. PSLAB Choi yoonjeong.
#SummitNow Inspecting Alfresco – Tools and Techniques Nathan McMinn Technical Consultant - Alfresco.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Nate Anderson So, You’ve Inherited an OnBase System.
Ur/Web: A Simple Model for Programming the Web
Java Flight Recorder and Java Mission Control
Java performance mistakes
DevOps with ASP.NET Core and Entity Framework Core
How to tune your applications before moving your database to Microsoft Azure SQL Database (MASD) OK, you've jumped into your Azure journey by creating.
The Myths of Automation
GlassFish Performance Tuning: Tips from the Field
Shared Services with Spotfire
R For The SQL Developer Kevin Feasel Manager, Predictive Analytics
Accessibility with WordPress
Introduction to Information Security
Production Debugging in a Serverless World
JRuby on Rails Charles Oliver Nutter JRuby Core Developer
Testing & Testing Tools
Software Architecture in Practice
1Y0-203 Dumps PDF Are You Worried About Citrix XenApp and XenDesktop 7.15 Administration 1y0-203 dumps1y0-203 braindumps1y0-203 study material1y0-203 dumps.
Introducing Umbraco Latch
How to Fix Norton Antivirus Sonar Protection Error.
2018 Valid Cloudera CCA175 Dumps Questions - CCA175 Braindumps Dumpsprofessor.com
Continuous Performance Engineering
WHATAP 제가 와탭을 소개하겠습니다. November 14, 2018.
Making PowerShell Useful
Automating reports with Python
PerfView Measure and Improve Your App’s Performance for Free
Data Modeling Best Practices Workflow
Accessibility with WordPress
.NET Debugging for the Production Environment
Evaluating Transaction System Performance
ColdFusion Performance Troubleshooting and Tuning
Making PowerShell Useful
Analyzing Performance Problems Using XEvents, DMVs & Query Store
Death to the Java Profiler
Using wait stats to determine why my server is slow
Java Virtual Machine Profiling. Agenda Introduction JVM overview Performance concepts Monitoring Profiling VisualVM demo Tuning Conclusions.
User Stories Agile Methodology HEE Learning Hub
Analyzing Performance Problems Using XEvents, DMVs & Query Store
Presentation transcript:

Erik Ostermueller http://c0d3r.org http://bit.ly/2017tjp java architect lead performance engineer FIS Global eostermueller@gmail.com @EOstermueller erikostermueller.com Author of Troubleshooting Java Performance http://bit.ly/2017tjp Author of Java performance certification exam at http://c0d3r.org

where to look for performance defects Persistence Alien systems threads heap P.A.t.h Checklist where to look for performance defects

mTDp the missing Visibility Tool That will change everything manual Thread Dump profiling

The problem: How can I Troubleshoot any running jvm?

Any running JVM? Yes!!!! Don't need: license for the expensive APM tool JMX enabled a java profiler installed access to that environment

Finally troubleshoot Any Running JVM

Plug it in now! Don’t make me restart my JVM Don’t make me install stuff

Why don’t more people use mTDp? mTDp is hiding in a messy closet of under-documented perf techniques ( Building Better Applications / 1994 ) Perhaps mTDp is mathematically misconstrued? http://ostermueller.blogspot.com/2017/04/the-math-behind-manual-thread-dump.html

Thread Dumps: Old school and New school Without mTDp, thread dumps diagnose these: With mTDp we can solve many more problems!

60 seconds on Thread Dump the basic

Jstack is low overhead I use it regularly in prod and test

Capture a Simple Thread DUmp

Thread dump example: Jstack <myPid> or “kill -3”

Landmarks in a Stack Trace (my terms) Current - running on CPU when jstack was invoked Trigger - your code that leads to ‘Current’ Entry - The protocol (HTTP, JMS) that started thread

A Big Scary Stack Trace

mTDp: A Description in two easy steps

Step 1 Take four or so thread dumps …as load is applied …with a few seconds between each

Step 2 If something that you could fix …shows up in the dumps …for two or more threads …that are under load, then it is worth fixing!

A Visual of Four Thread Dumps

mTDp Tips

Focus on Threads Under Load Focus on all stack traces containing your package name! Focus on all stack traces started by your end users’ protocol. If an HTTPS system, look for threads with an “entry” marked with HTTPS-ish class names. Focus on Threads Under Load (assume your code is the problem)

“web container” threads Examples of HTTP Threads:

Other mTDp Tricks: Which SQL statement is slow? Slow backend system? Great concurrency metric! Great connection pool metric! more!

Common ways to mess up mTDp Make judgements based on just one thread dump FIX → take 4 or more Make judgements based on system with low-load or no-load FIX → check for moderate CPU use

Common ways to mess up mTDp (part 2) Don’t lose focus of the threads under load. If an HTTPS system, look for threads with an “entry” marked with HTTPS-ish class names. If a JMS system, look for threads with an “entry” marked with JMS-ish class names. Thread dumps don’t show GC/heap problems FIX → use jstat for a “plug-it-in-now” view of GC.

Reminder: GC issues don’t show up in thread dumps

Thread Dump analysis tools are great, but they limit you to the tip of the iceberg. Use vi and notepad++

mTDp can detect problems large (>1s) and small (2-3ms)

mTDp Demo

THE END Erik Ostermueller java architect lead performance engineer FIS Global eostermueller@gmail.com @EOstermueller erikostermueller.com Author of Troubleshooting Java Performance http://bit.ly/2017tjp Author of Java performance certification exam at http://c0d3r.org