SlideShare a Scribd company logo
A5: Introduction to the IBM 
Monitoring and Diagnostic Tools 
Chris Bailey 
STSM, IBM Runtime Monitoring and Diagnostics
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. 
© 2014 IBM Corporation 
2
Introduction to the Speaker 
Chris Bailey 
IBM Runtime Monitoring and Diagnostics Architect 
 13 years experience developing and deploying Java SDKs 
 1 years experience developing and deploying Node.js SDKs 
3 
 Recent work focus: 
‒ Java and Node.js monitoring and diagnostics 
‒ Java and Node.js integration into the cloud 
‒ Highly resilient and scalable deployments 
‒ Requirements gathering 
 Contact Details: 
‒ baileyc@uk.ibm.com 
‒ http://www.linkedin.com/in/chrisbaileyibm 
‒ http://www.slideshare.net/cnbailey/ 
‒ @Chris__Bailey
4 
What I hope to achieve in the next 60 mins 
 Introduce the IBM tools for monitoring, debugging and diagnosing problems 
 Understand the capabilities of each tool 
 See how the tools can be extended tools with knowledge of applications or to build custom 
tools 
 See how IBM is building on top of the Java tools platform
Java Tools Overview
● A free unified suite of tools to understand different aspects of applications 
● Provides more than visualizations – also provides recommendations 
● IBM supported and always current to latest IBM runtime levels 
● Provides APIs to allow you to extend or create your own custom tools 
6 
IBM Monitoring and Diagnostic Tools for Java
7 
Where to use our tools 
The IBM Monitoring and Diagnostic Tools fall into two groups 
Reactive (Post-Mortem): 
Information created at runtime and analyzed offline: 
– Garbage Collection Memory Visualiser (GCMV) 
– Memory Analyzer (MA) 
– Interactive Diagnostic Dump Explorer (IDDE) 
Proactive (Runtime): 
Information created at runtime and analyzed immediately: 
– Health Center
8 
How to get the tools: IBM Support Assistant (ISA) 
A workbench for use by your technical personnel to: 
 Expedite resolution of problems 
 Automate collection of symptom 
based “MustGather” data 
 View and analyze collected data 
 Leverage powerful tools to analyze 
logs, JVM core and heap dumps, 
config files, etc.
9 
How to get the tools: Eclipse Marketplace
Reactive Tools (Post-Mortem)
11 
Garbage Collector and Memory Visualizer (GCMV) 
Analyses and visualizes: 
● Process and system memory usage 
● Java heap memory usage and performance 
Compares multiple logs in the same plots 
and reports 
Many data views 
 Reports 
 Graphs 
 Tables
12 
Garbage Collector and Memory Visualizer (GCMV) 
Process and system memory usage: 
#!/bin/sh 
PID=$1 
INTERVAL=3 
# Echo time at start of monitoring. 
echo timestamp = `date +%s` 
# Echo the interval frequency. 
echo "ps interval = $INTERVAL" 
# Run the system command at intervals. 
while ([ -d /proc/$PID ]) do 
ps -p $PID -o pid,vsz,rss 
sleep $INTERVAL 
done
13 
Garbage Collector and Memory Visualizer (GCMV) 
Process and system memory usage: 
#!/bin/sh 
PID=$1 
INTERVAL=3 
# Echo time at start of monitoring. 
echo timestamp = `date +%s` 
# Echo the interval frequency. 
echo "ps interval = $INTERVAL" 
# Run the system command at intervals. 
while ([ -d /proc/$PID ]) do 
ps -p $PID -o pid,vsz,rss 
sleep $INTERVAL 
done
14 
Garbage Collector and Memory Visualizer (GCMV) 
Process and system memory usage: 
#!/bin/sh 
PID=$1 
INTERVAL=3 
# Echo time at start of monitoring. 
echo timestamp = `date +%s` 
# Echo the interval frequency. 
echo "ps interval = $INTERVAL" 
# Run the system command at intervals. 
while ([ -d /proc/$PID ]) do 
ps -p $PID -o pid,vsz,rss 
sleep $INTERVAL 
done 
Java heap memory usage and performance 
-verbose:gc 
-Xverbosegclog:[DIR_PATH][FILE_NAME] 
-Xverbosegclog:[DIR_PATH][FILE_NAME],X,Y 
where: 
X is the number of files to 
Y is the number of GC cycles a file should contain
15 
Performance Overhead of Verbose:GC 
Benchmark: DayTrader with 50 clients: 
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 
4 CPU machine, running at 100% utilization 
Throughput Runs Min Max Stddev 
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 
4000 
3500 
3000 
2500 
2000 
1500 
1000 
500 
0
16 
Performance Overhead of Verbose:GC 
Benchmark: DayTrader with 50 clients: 
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 
4 CPU machine, running at 100% utilization 
Throughput Runs Min Max Stddev 
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 
With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842 
4000 
3500 
3000 
2500 
2000 
1500 
1000 
500 
0
17 
Performance Overhead of Verbose:GC 
Benchmark: DayTrader with 50 clients: 
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 
4 CPU machine, running at 100% utilization 
Throughput Runs Min Max Stddev 
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 
With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842 
4000 
3500 
3000 
2500 
2000 
1500 
1000 
500 
0 
0.1289% ?
18 
Memory Analyzer (based on Eclipse MAT) 
Provides deep insights into Java Heaps 
Powerful analytic capabilities to explore 
heap sections, including “deep” and 
“shallow” cost 
Path to GC Roots 
Provides the reference chain that 
prevents an object being garbage 
collected 
Eclipse Equinox bundle explorer (works 
with OSGI bundles for WebSphere)
Memory Analyzer Loads Data from Dumps 
Processes PHD Heapdumps, HPROF Heapdumps and OS System Dumps 
System dump writing speed is relatively quick: 
~10s per GB providing physical memory is available 
Otherwise dictated by disk write speed 
Can be minimized by good configuration of system 
System dumps compress very well: 
Usually to 10% of original size 
0 2000 4000 6000 8000 10000 12000 14000 16000 
© 2014 IBM Corporation 
350 
300 
250 
200 
150 
100 
50 
0 
Linux 64 bit PPC 
Same Disk 
RAM Disk 
GB Netw ork 
Core Size (MB) 
Time to Generate (s)
20 
Memory Analyzer overview cont… 
Overview: 
Overview of the heapdump including size and total 
number of objects. 
Provides links to continued analysis 
Path to GC Roots: 
Provides the reference chain that prevents 
an object being garbage collected. 
Dominator Tree grouped by Class Loader: 
Lists the biggest objects using a “keep alive tree”. 
Grouping by Class 
Loader limits the analysis to a single application in a 
JEE environment
Extensions for Memory Analyzer 
Additional capabilities for debugging generic Java Applications 
21 
Extensions currently available for 
 IBM Java SE runtime 
 WebSphere Application Server 
 CICS Transaction Gateway 
Using these extensions will enable 
 Visualization of application and IBM product code 
 Confirm configuration of IBM Products 
 Inspect size and contents of IBM products 
Extensions are made available through ISA or installed directly into the Memory 
Analyser application
22 
Interactive Diagnostic Data Explorer (IDDE) 
The IBM JRE Dump artefacts provide insight into the health and integrity of your 
application by providing a graphical view of a system dump file 
Provides access to detailed 
information contained dumps 
Allows collaboration and user 
defined extensions 
Community of extensions and 
add-ons 
Ability to run Memory Analyzer 
Extensions 
Also supports Node.js
Proactive Tools (Runtime)
IBM Monitoring and Diagnostic Tools for Java™ Health Center 
24 
Answers vital questions: 
 What is my JVM doing? Is everything ok? 
 Why is my application running slowly? Why 
is it not scaling? 
 Am I using the right options? 
Live monitoring with very low overhead 
Diagnose potential problems, with 
recommendations 
Works at the JVM level, no domain-specific 
(e.g. J2EE) information 
Suitable for all Java applications 
Special view for WebSphere Real Time 
 Helps identify outlier events (class load, 
compilation, GC, application method)
25 
Enabling Health Center 
 Health Center enabled using the command line: 
java -Xhealthcenter Heartbeat 
 Health Center enabled at runtime using “Late Attach” to a running process: 
java Heartbeat 
java -jar healthcenter.jar 
java -jar healthcenter.jar -PID=<pid>
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 
26 
Health Center Data: Operating System and Machine 
Native Memory 
• Detect native memory leaks in application 
• Determine if external forces are using more memory 
• View components using the most native memory 
Environment reporting 
• Detects invalid Java options 
• Detects options which may hurt performance or 
serviceability 
• Useful for remote diagnosis of configuration-related 
problems
27 
Health Center Data: Java Runtime 
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 
Object Allocation Profiling 
 Understand what types of data is being allocated and 
at what rate 
 Determine which code is allocating data 
Threads view 
 List of current threads and states 
 Number of threads over time 
 See contended monitors
28 
Health Center Data: Java Runtime 
Class loading visualization 
 Shows all loaded classes 
 Shows load time 
 Identifies shared classes 
 Live class histogram information 
I/O 
 Monitor application file open/close events as they 
occur 
 Lists currently open files
29 
Health Center Data: Application 
Method Profiling 
 Always-on profiling shows application activity 
 Identifies the hottest methods in an application 
 Full call stacks to identify where methods are being 
called from and what methods they call 
 No byte code instrumentation, no recompiling 
Java Lock Profiling 
 Always-on lock monitoring 
 Quickly allows the usage of all locks to be profiled 
 Helps to identify points of contention in the 
application that are preventing scaling 
Live control of application 
 Trigger dumps 
 Enable verbosegc collection
105 
100 
95 
90 
85 
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients 
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 
Throughput determined by number of completed transactions on 4 saturated CPUs 
30 
Health Center overhead 
80 
100 
Baseline 
Network Client 
Headless 
Headless with ZIP
105 
100 
95 
90 
85 
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients 
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 
Throughput determined by number of completed transactions on 4 saturated CPUs 
31 
Health Center overhead 
80 
100.4 
Baseline 
Network Client 
Headless 
Headless with ZIP
105 
100 
95 
90 
85 
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients 
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 
Throughput determined by number of completed transactions on 4 saturated CPUs 
32 
Health Center overhead 
80 
99.01 
Baseline 
Network Client 
Headless 
Headless with ZIP
105 
100 
95 
90 
85 
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients 
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 
Throughput determined by number of completed transactions on 4 saturated CPUs 
33 
Health Center overhead 
80 
96.99 
Baseline 
Network Client 
Headless 
Headless with ZIP
Access Health Center data with the API 
The 2.2 release of Health Center provides an API 
● Allows developers to access Health Center data in their applications 
// Create the connection object: 
ConnectionProperties conn1 = new ConnectionProperties("localhost", 1973); 
// Connect to the Health Center agent, using the previous connection 
// settings: 
HealthCenter hcObject = HealthCenterFactory.connect(conn1, true); 
// Get garbage collection data and print: 
GCData gcData = hcObject.getGCData(); 
System.out.println("GC Mode is " + gcData.getGCMode().toString());
RAD v9 Usage of Health Center Data 
 Enable “Health Center Agent” 
 Select “Sample based profiling” 
 Method CPU usage collected 
 Displayed in real time 
 Accessed using API
IBM Support Assistant 5
Browser Browser 
Browser Browser 
37 
ISA 5.0 Team Server 
Server-based model 
Install once - shared by many team 
members via browser 
Web 2.0 browser interface 
Remote execution of PD tools 
Off-load analysis processing 
Collaboration on PD 
Case Management 
Tool Management 
Single-user option available 
Available at www.ibm.com/software/support/isa 
ISA 
Team Server 
IBM Support Assistant (ISA) 5.0
Automation of Upload of Data to ISA 5.0 
■ ISA Provide a REST interface for some of its functions: 
■ Case creation: 
curl --user user1:user1password -X POST -H Content-Type:application/x-www-form-urlencoded 
-v -o /home/dumps/curl.log --url http://myISA5TeamServer.mydomain.net/rest/1/tickets -d 
"summary={case summary}&description={case description}" 
■ File upload: 
curl --user user1:user1password -X POST -v -k -o /home/dumps/curl.log -F file=@'{}' --url 
http://myISA5TeamServer.mydomain.net/rest/1/files/${caseno}/file_upload?path=/${caseno}/ 
■ Can be combined with IBM JDKs “-Xdump” options to run automatically: 
-Xdump:tool:events=systhrow,filter=java/lang/OutOfMemoryError,exec="dumpUpload.sh %pid” 
● Where dumpUpload.sh contains: 
find . -name '*$1*' -exec curl -X POST -v -k -o curl.log -F file=@'{}' --url 
https://myISAServer.mydomain.net:10943/rest/1/files/0001/file_upload?path=/0001/ ; 
© 2014 IBM Corporation 38
Demo Time
40 
Summary 
 IBM is building a set of integrated monitoring and diagnostic tools 
 Taking a ground up approach 
 Working across teams, products and brands 
 Providing a consistent user experience 
 What Next??
41 
Questions?
Your feedback is valuable - please complete your session 
or lab evaluation! 
Session number 
[A5] 
Provide your evaluations by: 
Evaluation forms: 
Fill out a form at the end of each session 
Paper forms are located in each of the session or lab rooms 
Place the completed form in the tray as you exit the room 
- Or – 
Complete the session survey on Event Connect Portal: 
ibmeventconnect.eu/euxdx 
Select Sessions, then Session Finder, and complete the 
survey
43 
Where to find more information 
 IBM Monitoring and Diagnostic Tools for Java™ on developerWorks 
http://www.ibm.com/developerworks/java/jdk/tools/ 
 IBM Support Assistant (ISA) 
http://www.ibm.com/software/support/isa 
 Email javatool@uk.ibm.com
Visit WASdev.net for downloads and other resources 
WASdev.net
For Additional Information 
© 2014 IBM Corporation 
 IBM Training 
http://www.ibm.com/training 
 IBM WebSphere 
http://www-01.ibm.com/software/be/websphere/ 
 IBM developerWorks 
www.ibm.com/developerworks/websphere/websphere2.html 
 WebSphere forums and community 
www.ibm.com/developerworks/websphere/community/ 
45

More Related Content

What's hot (20)

PDF
JavaOne 2014: Java Debugging
Chris Bailey
 
PDF
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
Chris Bailey
 
PDF
Swift Summit: Pushing the boundaries of Swift to the Server
Chris Bailey
 
PPTX
Node Summit 2016: Web App Architectures
Chris Bailey
 
PDF
QCon Shanghai: Trends in Application Development
Chris Bailey
 
PDF
What's New in IBM Java 8 SE?
Tim Ellison
 
PDF
Puppet devops wdec
Wojciech Dec
 
PDF
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Andreas Koop
 
PDF
FLOW3 Tutorial - T3CON11 Frankfurt
Robert Lemke
 
PDF
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
RapidValue
 
PDF
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
WASdev Community
 
PPT
Efficient Memory and Thread Management in Highly Parallel Java Applications
pkoza
 
PPTX
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
Daniel Bryant
 
PDF
Successful Software Development with Apache Cassandra
zznate
 
PDF
DevoxxUK: Optimizating Application Performance on Kubernetes
Dinakar Guniguntala
 
PDF
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
 
PDF
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
Managed Beans: When, Why and How
Russell Maher
 
PDF
OSGi ecosystems compared on Apache Karaf - Christian Schneider
mfrancis
 
PPTX
Faster Java EE Builds with Gradle
Ryan Cuprak
 
JavaOne 2014: Java Debugging
Chris Bailey
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
Chris Bailey
 
Swift Summit: Pushing the boundaries of Swift to the Server
Chris Bailey
 
Node Summit 2016: Web App Architectures
Chris Bailey
 
QCon Shanghai: Trends in Application Development
Chris Bailey
 
What's New in IBM Java 8 SE?
Tim Ellison
 
Puppet devops wdec
Wojciech Dec
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Andreas Koop
 
FLOW3 Tutorial - T3CON11 Frankfurt
Robert Lemke
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
RapidValue
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
WASdev Community
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
pkoza
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
Daniel Bryant
 
Successful Software Development with Apache Cassandra
zznate
 
DevoxxUK: Optimizating Application Performance on Kubernetes
Dinakar Guniguntala
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
 
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Managed Beans: When, Why and How
Russell Maher
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
mfrancis
 
Faster Java EE Builds with Gradle
Ryan Cuprak
 

Viewers also liked (8)

PDF
WebSphere Technical University: Top WebSphere Problem Determination Features
Chris Bailey
 
PDF
Debugging Java from Dumps
Chris Bailey
 
PDF
Introduction to the IBM Java Tools
Chris Bailey
 
PPTX
Material design
Puspita Yudaningrum
 
PPTX
Materials design hutchinson
Melikarj
 
PDF
Playgrounds: Mobile + Swift = BFF
Chris Bailey
 
PDF
Material Design
Arya Padte
 
PPTX
Materials design
damarisescobar1911
 
WebSphere Technical University: Top WebSphere Problem Determination Features
Chris Bailey
 
Debugging Java from Dumps
Chris Bailey
 
Introduction to the IBM Java Tools
Chris Bailey
 
Material design
Puspita Yudaningrum
 
Materials design hutchinson
Melikarj
 
Playgrounds: Mobile + Swift = BFF
Chris Bailey
 
Material Design
Arya Padte
 
Materials design
damarisescobar1911
 
Ad

Similar to WebSphere Technical University: Introduction to the Java Diagnostic Tools (20)

PDF
Impact2014: Introduction to the IBM Java Tools
Chris Bailey
 
PDF
A165 tools for java and javascript
Toby Corbin
 
PPT
Share seattle health_center
nick_garrod
 
PDF
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Prolifics
 
PDF
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
0xdaryl
 
PDF
Java Performance & Profiling
Isuru Perera
 
PPTX
Performance eng prakash.sahu
Dr. Prakash Sahu
 
PPTX
Raising ux bar with offline first design
Kyrylo Reznykov
 
PPTX
InfrastructureDevOps.pptx it is most sui
pmishra37
 
PDF
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
PDF
Websphere doctor - your guide to diagnose issues
Joseph's WebSphere Library
 
PDF
Software Profiling: Understanding Java Performance and how to profile in Java
Isuru Perera
 
PDF
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Dina Goldshtein
 
PPTX
Virtualising Tier 1 Apps
Iwan Rahabok
 
PDF
Online airline reservation system project report.pdf
Kamal Acharya
 
PPT
Agentless System Crawler - InterConnect 2016
Canturk Isci
 
PPTX
Open source: Top issues in the top enterprise packages
Rogue Wave Software
 
PDF
Enabling a hardware accelerated deep learning data science experience for Apa...
Indrajit Poddar
 
PDF
travel portal for flights booking trave
GNaveenKanth
 
PDF
ghgh.pdf travel portal for flights booking right
GNaveenKanth
 
Impact2014: Introduction to the IBM Java Tools
Chris Bailey
 
A165 tools for java and javascript
Toby Corbin
 
Share seattle health_center
nick_garrod
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Prolifics
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
0xdaryl
 
Java Performance & Profiling
Isuru Perera
 
Performance eng prakash.sahu
Dr. Prakash Sahu
 
Raising ux bar with offline first design
Kyrylo Reznykov
 
InfrastructureDevOps.pptx it is most sui
pmishra37
 
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
Websphere doctor - your guide to diagnose issues
Joseph's WebSphere Library
 
Software Profiling: Understanding Java Performance and how to profile in Java
Isuru Perera
 
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Dina Goldshtein
 
Virtualising Tier 1 Apps
Iwan Rahabok
 
Online airline reservation system project report.pdf
Kamal Acharya
 
Agentless System Crawler - InterConnect 2016
Canturk Isci
 
Open source: Top issues in the top enterprise packages
Rogue Wave Software
 
Enabling a hardware accelerated deep learning data science experience for Apa...
Indrajit Poddar
 
travel portal for flights booking trave
GNaveenKanth
 
ghgh.pdf travel portal for flights booking right
GNaveenKanth
 
Ad

More from Chris Bailey (20)

PDF
NodeJS Interactive 2019: FaaS meets Frameworks
Chris Bailey
 
PDF
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Chris Bailey
 
PDF
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Chris Bailey
 
PDF
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
Chris Bailey
 
PDF
AltConf 2019: Server-Side Swift State of the Union
Chris Bailey
 
PDF
Server-side Swift with Swagger
Chris Bailey
 
PDF
Node Summit 2018: Cloud Native Node.js
Chris Bailey
 
PDF
Index - BFFs vs GraphQL
Chris Bailey
 
PDF
Swift Cloud Workshop - Swift Microservices
Chris Bailey
 
PDF
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Chris Bailey
 
PDF
Try!Swift India 2017: All you need is Swift
Chris Bailey
 
PDF
Swift Summit 2017: Server Swift State of the Union
Chris Bailey
 
PDF
IBM Cloud University: Java, Node.js and Swift
Chris Bailey
 
PDF
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
PDF
FrenchKit 2017: Server(less) Swift
Chris Bailey
 
PDF
AltConf 2017: Full Stack Swift in 30 Minutes
Chris Bailey
 
PDF
InterConnect: Server Side Swift for Java Developers
Chris Bailey
 
PDF
InterConnect: Java, Node.js and Swift - Which, Why and When
Chris Bailey
 
PDF
O'Reilly Software Architecture Conf: Cloud Economics
Chris Bailey
 
PDF
FrenchKit: End to End Application Development with Swift
Chris Bailey
 
NodeJS Interactive 2019: FaaS meets Frameworks
Chris Bailey
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Chris Bailey
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Chris Bailey
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
Chris Bailey
 
AltConf 2019: Server-Side Swift State of the Union
Chris Bailey
 
Server-side Swift with Swagger
Chris Bailey
 
Node Summit 2018: Cloud Native Node.js
Chris Bailey
 
Index - BFFs vs GraphQL
Chris Bailey
 
Swift Cloud Workshop - Swift Microservices
Chris Bailey
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Chris Bailey
 
Try!Swift India 2017: All you need is Swift
Chris Bailey
 
Swift Summit 2017: Server Swift State of the Union
Chris Bailey
 
IBM Cloud University: Java, Node.js and Swift
Chris Bailey
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
FrenchKit 2017: Server(less) Swift
Chris Bailey
 
AltConf 2017: Full Stack Swift in 30 Minutes
Chris Bailey
 
InterConnect: Server Side Swift for Java Developers
Chris Bailey
 
InterConnect: Java, Node.js and Swift - Which, Why and When
Chris Bailey
 
O'Reilly Software Architecture Conf: Cloud Economics
Chris Bailey
 
FrenchKit: End to End Application Development with Swift
Chris Bailey
 

Recently uploaded (20)

PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Digital Circuits, important subject in CS
contactparinay1
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 

WebSphere Technical University: Introduction to the Java Diagnostic Tools

  • 1. A5: Introduction to the IBM Monitoring and Diagnostic Tools Chris Bailey STSM, IBM Runtime Monitoring and Diagnostics
  • 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. © 2014 IBM Corporation 2
  • 3. Introduction to the Speaker Chris Bailey IBM Runtime Monitoring and Diagnostics Architect  13 years experience developing and deploying Java SDKs  1 years experience developing and deploying Node.js SDKs 3  Recent work focus: ‒ Java and Node.js monitoring and diagnostics ‒ Java and Node.js integration into the cloud ‒ Highly resilient and scalable deployments ‒ Requirements gathering  Contact Details: ‒ [email protected] ‒ http://www.linkedin.com/in/chrisbaileyibm ‒ http://www.slideshare.net/cnbailey/ ‒ @Chris__Bailey
  • 4. 4 What I hope to achieve in the next 60 mins  Introduce the IBM tools for monitoring, debugging and diagnosing problems  Understand the capabilities of each tool  See how the tools can be extended tools with knowledge of applications or to build custom tools  See how IBM is building on top of the Java tools platform
  • 6. ● A free unified suite of tools to understand different aspects of applications ● Provides more than visualizations – also provides recommendations ● IBM supported and always current to latest IBM runtime levels ● Provides APIs to allow you to extend or create your own custom tools 6 IBM Monitoring and Diagnostic Tools for Java
  • 7. 7 Where to use our tools The IBM Monitoring and Diagnostic Tools fall into two groups Reactive (Post-Mortem): Information created at runtime and analyzed offline: – Garbage Collection Memory Visualiser (GCMV) – Memory Analyzer (MA) – Interactive Diagnostic Dump Explorer (IDDE) Proactive (Runtime): Information created at runtime and analyzed immediately: – Health Center
  • 8. 8 How to get the tools: IBM Support Assistant (ISA) A workbench for use by your technical personnel to:  Expedite resolution of problems  Automate collection of symptom based “MustGather” data  View and analyze collected data  Leverage powerful tools to analyze logs, JVM core and heap dumps, config files, etc.
  • 9. 9 How to get the tools: Eclipse Marketplace
  • 11. 11 Garbage Collector and Memory Visualizer (GCMV) Analyses and visualizes: ● Process and system memory usage ● Java heap memory usage and performance Compares multiple logs in the same plots and reports Many data views  Reports  Graphs  Tables
  • 12. 12 Garbage Collector and Memory Visualizer (GCMV) Process and system memory usage: #!/bin/sh PID=$1 INTERVAL=3 # Echo time at start of monitoring. echo timestamp = `date +%s` # Echo the interval frequency. echo "ps interval = $INTERVAL" # Run the system command at intervals. while ([ -d /proc/$PID ]) do ps -p $PID -o pid,vsz,rss sleep $INTERVAL done
  • 13. 13 Garbage Collector and Memory Visualizer (GCMV) Process and system memory usage: #!/bin/sh PID=$1 INTERVAL=3 # Echo time at start of monitoring. echo timestamp = `date +%s` # Echo the interval frequency. echo "ps interval = $INTERVAL" # Run the system command at intervals. while ([ -d /proc/$PID ]) do ps -p $PID -o pid,vsz,rss sleep $INTERVAL done
  • 14. 14 Garbage Collector and Memory Visualizer (GCMV) Process and system memory usage: #!/bin/sh PID=$1 INTERVAL=3 # Echo time at start of monitoring. echo timestamp = `date +%s` # Echo the interval frequency. echo "ps interval = $INTERVAL" # Run the system command at intervals. while ([ -d /proc/$PID ]) do ps -p $PID -o pid,vsz,rss sleep $INTERVAL done Java heap memory usage and performance -verbose:gc -Xverbosegclog:[DIR_PATH][FILE_NAME] -Xverbosegclog:[DIR_PATH][FILE_NAME],X,Y where: X is the number of files to Y is the number of GC cycles a file should contain
  • 15. 15 Performance Overhead of Verbose:GC Benchmark: DayTrader with 50 clients: WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 4 CPU machine, running at 100% utilization Throughput Runs Min Max Stddev Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 4000 3500 3000 2500 2000 1500 1000 500 0
  • 16. 16 Performance Overhead of Verbose:GC Benchmark: DayTrader with 50 clients: WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 4 CPU machine, running at 100% utilization Throughput Runs Min Max Stddev Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842 4000 3500 3000 2500 2000 1500 1000 500 0
  • 17. 17 Performance Overhead of Verbose:GC Benchmark: DayTrader with 50 clients: WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7 4 CPU machine, running at 100% utilization Throughput Runs Min Max Stddev Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862 With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842 4000 3500 3000 2500 2000 1500 1000 500 0 0.1289% ?
  • 18. 18 Memory Analyzer (based on Eclipse MAT) Provides deep insights into Java Heaps Powerful analytic capabilities to explore heap sections, including “deep” and “shallow” cost Path to GC Roots Provides the reference chain that prevents an object being garbage collected Eclipse Equinox bundle explorer (works with OSGI bundles for WebSphere)
  • 19. Memory Analyzer Loads Data from Dumps Processes PHD Heapdumps, HPROF Heapdumps and OS System Dumps System dump writing speed is relatively quick: ~10s per GB providing physical memory is available Otherwise dictated by disk write speed Can be minimized by good configuration of system System dumps compress very well: Usually to 10% of original size 0 2000 4000 6000 8000 10000 12000 14000 16000 © 2014 IBM Corporation 350 300 250 200 150 100 50 0 Linux 64 bit PPC Same Disk RAM Disk GB Netw ork Core Size (MB) Time to Generate (s)
  • 20. 20 Memory Analyzer overview cont… Overview: Overview of the heapdump including size and total number of objects. Provides links to continued analysis Path to GC Roots: Provides the reference chain that prevents an object being garbage collected. Dominator Tree grouped by Class Loader: Lists the biggest objects using a “keep alive tree”. Grouping by Class Loader limits the analysis to a single application in a JEE environment
  • 21. Extensions for Memory Analyzer Additional capabilities for debugging generic Java Applications 21 Extensions currently available for  IBM Java SE runtime  WebSphere Application Server  CICS Transaction Gateway Using these extensions will enable  Visualization of application and IBM product code  Confirm configuration of IBM Products  Inspect size and contents of IBM products Extensions are made available through ISA or installed directly into the Memory Analyser application
  • 22. 22 Interactive Diagnostic Data Explorer (IDDE) The IBM JRE Dump artefacts provide insight into the health and integrity of your application by providing a graphical view of a system dump file Provides access to detailed information contained dumps Allows collaboration and user defined extensions Community of extensions and add-ons Ability to run Memory Analyzer Extensions Also supports Node.js
  • 24. IBM Monitoring and Diagnostic Tools for Java™ Health Center 24 Answers vital questions:  What is my JVM doing? Is everything ok?  Why is my application running slowly? Why is it not scaling?  Am I using the right options? Live monitoring with very low overhead Diagnose potential problems, with recommendations Works at the JVM level, no domain-specific (e.g. J2EE) information Suitable for all Java applications Special view for WebSphere Real Time  Helps identify outlier events (class load, compilation, GC, application method)
  • 25. 25 Enabling Health Center  Health Center enabled using the command line: java -Xhealthcenter Heartbeat  Health Center enabled at runtime using “Late Attach” to a running process: java Heartbeat java -jar healthcenter.jar java -jar healthcenter.jar -PID=<pid>
  • 26. 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 26 Health Center Data: Operating System and Machine Native Memory • Detect native memory leaks in application • Determine if external forces are using more memory • View components using the most native memory Environment reporting • Detects invalid Java options • Detects options which may hurt performance or serviceability • Useful for remote diagnosis of configuration-related problems
  • 27. 27 Health Center Data: Java Runtime 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 Object Allocation Profiling  Understand what types of data is being allocated and at what rate  Determine which code is allocating data Threads view  List of current threads and states  Number of threads over time  See contended monitors
  • 28. 28 Health Center Data: Java Runtime Class loading visualization  Shows all loaded classes  Shows load time  Identifies shared classes  Live class histogram information I/O  Monitor application file open/close events as they occur  Lists currently open files
  • 29. 29 Health Center Data: Application Method Profiling  Always-on profiling shows application activity  Identifies the hottest methods in an application  Full call stacks to identify where methods are being called from and what methods they call  No byte code instrumentation, no recompiling Java Lock Profiling  Always-on lock monitoring  Quickly allows the usage of all locks to be profiled  Helps to identify points of contention in the application that are preventing scaling Live control of application  Trigger dumps  Enable verbosegc collection
  • 30. 105 100 95 90 85 Measured using WebSphere App Server and the DayTrader benchmark with 50 clients Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 Throughput determined by number of completed transactions on 4 saturated CPUs 30 Health Center overhead 80 100 Baseline Network Client Headless Headless with ZIP
  • 31. 105 100 95 90 85 Measured using WebSphere App Server and the DayTrader benchmark with 50 clients Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 Throughput determined by number of completed transactions on 4 saturated CPUs 31 Health Center overhead 80 100.4 Baseline Network Client Headless Headless with ZIP
  • 32. 105 100 95 90 85 Measured using WebSphere App Server and the DayTrader benchmark with 50 clients Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 Throughput determined by number of completed transactions on 4 saturated CPUs 32 Health Center overhead 80 99.01 Baseline Network Client Headless Headless with ZIP
  • 33. 105 100 95 90 85 Measured using WebSphere App Server and the DayTrader benchmark with 50 clients Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7 Throughput determined by number of completed transactions on 4 saturated CPUs 33 Health Center overhead 80 96.99 Baseline Network Client Headless Headless with ZIP
  • 34. Access Health Center data with the API The 2.2 release of Health Center provides an API ● Allows developers to access Health Center data in their applications // Create the connection object: ConnectionProperties conn1 = new ConnectionProperties("localhost", 1973); // Connect to the Health Center agent, using the previous connection // settings: HealthCenter hcObject = HealthCenterFactory.connect(conn1, true); // Get garbage collection data and print: GCData gcData = hcObject.getGCData(); System.out.println("GC Mode is " + gcData.getGCMode().toString());
  • 35. RAD v9 Usage of Health Center Data  Enable “Health Center Agent”  Select “Sample based profiling”  Method CPU usage collected  Displayed in real time  Accessed using API
  • 37. Browser Browser Browser Browser 37 ISA 5.0 Team Server Server-based model Install once - shared by many team members via browser Web 2.0 browser interface Remote execution of PD tools Off-load analysis processing Collaboration on PD Case Management Tool Management Single-user option available Available at www.ibm.com/software/support/isa ISA Team Server IBM Support Assistant (ISA) 5.0
  • 38. Automation of Upload of Data to ISA 5.0 ■ ISA Provide a REST interface for some of its functions: ■ Case creation: curl --user user1:user1password -X POST -H Content-Type:application/x-www-form-urlencoded -v -o /home/dumps/curl.log --url http://myISA5TeamServer.mydomain.net/rest/1/tickets -d "summary={case summary}&description={case description}" ■ File upload: curl --user user1:user1password -X POST -v -k -o /home/dumps/curl.log -F file=@'{}' --url http://myISA5TeamServer.mydomain.net/rest/1/files/${caseno}/file_upload?path=/${caseno}/ ■ Can be combined with IBM JDKs “-Xdump” options to run automatically: -Xdump:tool:events=systhrow,filter=java/lang/OutOfMemoryError,exec="dumpUpload.sh %pid” ● Where dumpUpload.sh contains: find . -name '*$1*' -exec curl -X POST -v -k -o curl.log -F file=@'{}' --url https://myISAServer.mydomain.net:10943/rest/1/files/0001/file_upload?path=/0001/ ; © 2014 IBM Corporation 38
  • 40. 40 Summary  IBM is building a set of integrated monitoring and diagnostic tools  Taking a ground up approach  Working across teams, products and brands  Providing a consistent user experience  What Next??
  • 42. Your feedback is valuable - please complete your session or lab evaluation! Session number [A5] Provide your evaluations by: Evaluation forms: Fill out a form at the end of each session Paper forms are located in each of the session or lab rooms Place the completed form in the tray as you exit the room - Or – Complete the session survey on Event Connect Portal: ibmeventconnect.eu/euxdx Select Sessions, then Session Finder, and complete the survey
  • 43. 43 Where to find more information  IBM Monitoring and Diagnostic Tools for Java™ on developerWorks http://www.ibm.com/developerworks/java/jdk/tools/  IBM Support Assistant (ISA) http://www.ibm.com/software/support/isa  Email [email protected]
  • 44. Visit WASdev.net for downloads and other resources WASdev.net
  • 45. For Additional Information © 2014 IBM Corporation  IBM Training http://www.ibm.com/training  IBM WebSphere http://www-01.ibm.com/software/be/websphere/  IBM developerWorks www.ibm.com/developerworks/websphere/websphere2.html  WebSphere forums and community www.ibm.com/developerworks/websphere/community/ 45