SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Memory Heap Analysis
with AppDynamics
AppDynamics Version 4.2
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2
Notice
The information and materials included in this presentation (collectively,
the “Materials”) are the confidential and proprietary information of
AppDynamics, Inc. (the “Company”). No part of the Materials may be
reproduced, distributed, communicated or displayed in any form or by any
means, or used to make any derivative work, without prior written
permission from the Company. © 2016 AppDynamics, Inc. All rights
reserved.
All third party trademarks, including names, logos and brands, referenced
by the Company in this presentation are property of their respective
owners. All references to third party trademarks are for identification
purposes only and shall be considered nominative fair use under
trademark law.
Objectives
By the end of this course, you will be able to:
• Describe Java memory managementin detail
• Visualize Java garbage collection processes
with a profiler
• Use the AppDynamics Memory dashboard
to monitor and troubleshootgarbage collection
issues in your applications
• Use AppDynamics ObjectInstance Tracking
and Automatic Leak Detection features to
find the root cause of many common memory
issues in Java applications
• Describe the issues with ClassLoader leaks
and other PermGen / MetaSpace issues,
and how to preventthem
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 3
Course
After completing the labs in the course,you will be
able to use Object Instance Tracking,and Automatic
Leak Detection to help troubleshootmemory problems
and find the root cause of these issues.
Labs
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 4
Topic 1 Garbage Collection Explained
A. How Garbage Collection Works In Java
B. The Anatomy Of The Java Memory Heap
C. Using A Profiler To Visualize The Java Memory Heap
Topic 2 Memory Heap Analysis Tooling & Workflows
A. Available Tooling
B. Using Automatic Leak Detection And Object Instance Tracking
C. OutOfMemoryError ! = Memory Leak
D. The Problem Of ClassLoader Leaks
Memory Heap Analysis with AppDynamics
Agenda
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 5
Topic 1 Garbage Collection Explained
A. How Garbage Collection Works In Java
B. The Anatomy Of The Java Memory Heap
C. Using A Profiler To Visualize The Java Memory Heap
Agenda
Memory Heap Analysis with AppDynamics
Java Memory Management
Most Java developers know thatJava uses automatic
memory management,and that a garbage collector
manages memory withoutthe need for explicit
developer interaction.
Few of us know the details and limitations of the
garbage collector’s inner workings,and even fewer
know what to look for in order to ensure that a Java
application is notinadvertently preventing the garbage
collector from doing its job effectively.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 6
Concepts, Details & Limitations
We’ll explain the concepts behind memory
management,and go into detail abouthow garbage
collection works,then we’ll cover the types of garbage
collectors available to Java virtual machines,and
some situations in which they might be useful.
Finally,we’ll actually look at garbage collection
in action with the help of a profiler.
Garbage Collection Concepts
First, what we all know about Java memory
management and garbage collection
• Java collects memory automatically by running one
or more garbage collector threads thatremove
objects that are no longer needed by the application
• Therefore, Java can not produce a memory leak per
se, right? We’ll not really.We’ll examine this question
further.
The biggestreason that the 2nd
bulleton the left
is not always true is that what Java thinks is “no longer
needed” may differ from what you, the developer think,
so an application may leak memory because objects
that you think are “no longer needed” are keptin
memory by Java.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 7
Concepts, Details & Limitations
BAD NEWS
Knowing how the
garbage collector
works is more
complicated than
it seems.
GOOD NEWS
Java generally “does
the right thing”,so if you
know how the garbage
collector works, you should
be able to avoid most
memory management
issues
Knowing How The Garbage Collector Works
Because one can not force the garbage collector to do its job on
command, this is more complex than following simple guidelines
like
• Setting all objects to null when no longer needed
• Calling System.gc()
• Using certain design patterns
Each situation you encounter may be different and requires analysis.
Rather than following a recipe,it is best to understand conceptually
how the garbage collection process works.
Once you know the conceptual framework,you will usually be able to
analyze a situation and make the right decisions to avoid memory issues.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 8
Concepts, Details & Limitations
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 9
Topic 1 Garbage Collection Explained
A. How Garbage Collection Works In Java
B. The Anatomy Of The Java Memory Heap
C. Using A Profiler To Visualize The Java Memory Heap
Memory Heap Analysis with AppDynamics
Agenda
Setting The Stage
There are many kinds of Java applications, and, as stated
earlier, they are all different and need to be analyzed.
However, we can make some basic assumptions that
will help narrow the space to a manageable one.
1. Our target application will be a Java Web Application running
on an Oracle Java 7+ JVM
2. We’ll use Tomcat Application Server,but most Java EE
servers have similar memory managementcharacteristics
3. The JVM is using the -server switch, and therefore using
a server-optimized garbage collector
4. The JVM is not using the G1 garbage collector
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 10
The HotSpot Memory Space
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 11
A HotSpot JVM contains a number of different memory spaces
In our discussions of memory management,
we’ll concentrate on the heap,as it contains
the majority of application objectinstances that
are garbage collected during the life of the application
The various memory spaces are
The heap contains (most) objectreferences.
This is segmented into different regions
or generations
Stacks and other memory spaces includes
the stacks as well as method, thread, native,
and JVM execution spaces,and are smaller
than the heap
Short- v. Long-Lived Objects In Web Apps
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 12
In our discussions of memory management,we’ll concentrate on the
heap,as it contains the majority of application objectinstances that
are garbage collected during the life of the application.
OBJECT AGE
NUMBEROFOBJECTS
Web apps contain many more short-lived than long-lived objects,
and show an inverse relationship between the number of instances and their age
Generational Heap Structure
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 13
JVM Heap
Generational Heap Structure
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 14
JVM Heap
Minor Collection
STOP THE WORLD
Major Collection
STOP THE WORLD
Generational Heap Structure
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 15
JVM Heap
Total Collection
STOP THE WORLD
Generational Heap Structure
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 16
JVM Heap
Minor Collection
STOP THE WORLD
Major Collection
STOP THE WORLD
Ways to Control the Shape & Size of the Heap
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 17
-Xms //initial total heap size
-Xmx //Maximum total heap size; allows the heap to grow from initial to maximum size
-Xmn //Young generation size
-XX:PermSize //Initial PermGen size
-XX:MaxPermSize //Maximum PermGen size; allows PermGen to grow from initial to maximum
size
Java has a number of system switches that allow developers to control the size
or relative size of the different parts of the heap
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 18
Topic 1 Garbage Collection Explained
A. How Garbage Collection Works In Java
B. The Anatomy Of The Java Memory Heap
C. Using A Profiler To Visualize The Java Memory Heap
Memory Heap Analysis with AppDynamics
Agenda
Types Of Garbage Collectors
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 19
SerialGC
Optimized for client
applications with
small memory
footprints
ParallelGC
Uses multiple threads to GC.
Optimized for situations in
which throughputis
importantand long pauses
are acceptable,such as
batch processing
Concurrent
Mark-Sweep(CMS) GC
Attempts to minimize
pauses.Optimized for
server JVMs
Garbage First (G1) GC
Attempts to improve on
CMS GC performance
while providing
configurable pause
thresholds
Serial GC
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 20
-XX:+UseSerialGC
Java has a number of system switches that allow developers to control the size
or relative size of the different parts of the heap
• Uses a single thread for both major and minor collections
• Uses compacting in the Old Gen to move surviving
objects to contiguous memory,which makes it faster to
allocate memory for new objects
• Best for clientapplications with small memory footprints
To use the SerialGC collector,add the following switch
to your Java command:
STOP THE WORLD
PAUSE
STOP THE WORLD
PAUSE
Parallel GC
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 21
-XX:+UseParallelGC //(default) parallel Young
Gen + serial compacting Old Gen
-XX:+UseParallelOldGC //parallel Young Gen +
parallel compacting Old Gen
Java has a number of system switches that allow developers to control the size
or relative size of the different parts of the heap
• Uses multiple threads,generally more efficientthan
SerialGC
• Will perform better than SerialGC on host with 3+ CPUs
• Optimized for throughput.However,long pauses will
occur for major collections
• Best for batch processing environments thatrequire high
throughput,but not high responsiveness
The ParallelGC collector comes in two flavors:
STOP THE WORLD
PAUSE
STOP THE WORLD
PAUSE
Concurrent Mark-Sweep(CMS) GC
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 22
-XX:+UseConcMarkSweepGC //in addition,
the number of threads used is set with
-XX:ParallelCMSThreads=<n> //where <n>
is the number of threads required
Java has a number of system switches that allow developers to control the size
or relative size of the different parts of the heap
• Only an Old Gen collector.Uses the same algorithm
as ParallelGC for Young Gen
• No compaction.If fragmentation is an issue,
switch to ParallelGC or use larger heap
• Optimized for low pause length relative to ParallelGC
• Performs majority of GC work concurrently with
the application threads (less Stop The World time).
• Best for server apps that need to be highly responsive
The CMS GC collector is invoked with:
STOP THE WORLD PAUSE INITIAL MARK
CONCURRENTMARK
REMARK
Garbage First (G1) GC
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 23
-XX:+UseG1GC //in addition, the maximum pause length
can be set with
-XX:MaxGCPauseMillis=<n> //the default is 200
Java has a number of system switches that allow developers to control the size
or relative size of the different parts of the heap
• Is a parallel,concurrent,incrementally compacting low-pause
collector – the most advanced general purpose collector available
• Divides the heap into small regions of equal size, rather than
Young and Old generations
• Focuses on collecting regions with few live objects
• Always compacts objects into differentregion,and leaves
the current region empty
• Decreases pause time, because whole region can be collected
in one operation;Includes a pause-time threshold control
The CMS GC collector is invoked with
Instructor Demo
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 24
Visualizing the Garbage
Collection Process
Java Garbage Collection In Action
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 25
To take the concepts we’ve learned aboutgarbage
collection and make them more concrete,we’ll actually
take a look at garbage collection in action
We will use the standard Java profiler that comes with
the JDK, JVisualVM,on a web application running on
Tomcat 7 and JDK 7, and see whatthe memory heap
actually looks like in real-time
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26
Topic 2 Memory HeapAnalysis Tooling & Workflows
A. Available Tooling
B. Using Automatic Leak Detection And Object Instance Tracking
C. OutOfMemoryError ! = Memory Leak
D. The Problem Of ClassLoader Leaks
Memory Heap Analysis with AppDynamics
Agenda
Node-Level Memory Dashboard
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 27
AGENTS
Shows state of all AppDynamics
agents associated with this node
• App Server Agent
• Machine Agent
• Agent Diagnostics
HARDWARE
Shows CPU/ Memory
Utilization and
File/Network
I/O metrics
MEMORY
Shows JVM/CLR Heap state
•Object Instance Tracking
•Automatic Leak Detection
Provides detailed information on the state of each node
Object Instance Tracking(OIT)
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 28
Shows the allocated trend for
• Top 20 Application Classes
• Top 20 System Classes
• Custom Classes
OIT allows a drill-down into how objects are being
instantiated and which part of your application code is
creating each objecttype. It is useful for diagnostic
memory leak/memory thrash situations.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 29
Topic 2 Memory HeapAnalysis Tooling & Workflows
A. Available Tooling
B. Using Automatic Leak DetectionAnd Object Instance Tracking
C. OutOfMemoryError ! = Memory Leak
D. The Problem Of ClassLoader Leaks
Memory Heap Analysis with AppDynamics
Agenda
Automatic Leak Detection(ALD)
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30
• Monitors all collection classes
in your application
• Shows any collections thatare
growing monotonously for a
long time
• Useful for detecting collection-
based memory leaks
• Can cause significant
overhead:Best used in
dev/test. If used in production,
enable on a single node rather
than the whole tier
Instructor Demo
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 31
Workflow for Memory
Heap Analysis
Using Object Instance Tracking
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 32
We will cause our web
application to experience a
memory leak by repeatedly
adding instances ofan
objectin memory.
Then we’ll monitor the app
with Object Instance Tracking
and see if we can find the
objects responsible for the
memory leak.
If we do find some suspect
classes, we’ll start an
allocation tracking session to
see where these objects are
being created in our code.
Using Automatic Leak Detection
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 33
We will now cause our
web application to
experience a collection-
based memory leak.
Then we’ll monitor with
Automatic Leak Detection
and see if ALD can pinpoint
the leaking collection.
If we do find a culprit,
we can run allocation
sessions to find out what
is in the collection and
where in our code it
is being allocated.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 34
Topic 2 Memory HeapAnalysis Tooling & Workflows
A. Available Tooling
B. Using Automatic Leak Detection And Object Instance Tracking
C. OutOfMemoryError ! = Memory Leak
D. The Problem Of ClassLoader Leaks
Memory Heap Analysis with AppDynamics
Agenda
Non-Memory Leak Cause of OutOfMemoryError
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 35
Heap is too small
for (normal)
operation
Overload causes
heap to fill
OutOfMemoryError
in PermGen
Misconfiguration or Capacity
Mismatch
Misconfiguration or Capacity
Mismatch
Misconfiguration
(but see ClassLoader leak
issue, discussed next)
OutOfMemoryError can happen for a number of reasons
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 36
Topic 2 Memory HeapAnalysis Tooling & Workflows
A. Available Tooling
B. Using Automatic Leak Detection And Object Instance Tracking
C. OutOfMemoryError ! = Memory Leak
D. The Problem Of ClassLoader Leaks
Memory Heap Analysis with AppDynamics
Agenda
ClassLoader Reference Cannot Be Garbage
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 37
Except sometimes
Any time that a class is loaded inside your application
by the system ClassLoader,a memory leak may result
Given the fact that the ClassLoader has references to every Class
objectin your application,this can chew up the PermGen quickly
• Best way to explain is to look at an example.An excellent
one is the issue of loading JDBC drivers
• The below code loads a JDBC driver
Class.forName(“com.mysql.jdbc.Driver”);
Connection c =
DriverManager.getConnection(“jdbc:mysql://dbhost/dbName”);
…
Many So-Called System Classes
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 38
This can occur with any of them
While the JDBC driver is a very common example,
what I’m about to show you can happen with any
of the following
• Bean introspection caches
• Shutdown hooks
• Custom defaultauthenticator
• Custom security providers
• Custom MBeans,ThreadGroups,or PropertyEditors
Now back to loading our JDBC driver…
Reference Map From JRE System Object
to Your Application ClassLoader
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 39
General Rule For Web Apps
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 40
The general rule applies to many other System classes and resources
• If you load a class in your application thatwill register itselfwith the system,
when your web application is reloaded,the JVM may not be able to garbage
collectthe ClassLoader
• Any time you have an OutOfMemoryError in PermGen, you should suspect
a ClassLoader leak
• Since many classes register themselves with a central system registry, this is
often called the “central registration problem” and itleads directly to PermGen
memory leaks as web applications are redeployed by the app server
• The problem can be particularly severe in continuous integration environments
in which applications are redeployed regularly
The way to solve the JDBC issue in our example is easy — simply move the JDBC driver
class from your application to the common app server
What We Learned Today
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 41
• Describe in detail the structure of the Java HotSpot JVM memory space
• Understand the process of garbage collection and how objects are promoted
through the differentmemory spaces in the Java heap
• Describe the differenttypes of garbage collectors available in Java,and what
conditions they are optimized for
• Use AppDynamics memory managementtools like ALD and OIT to diagnose
memory issues in your application
• Understand the causes of ClassLoader memory leaks and how to avoid them
You should now be able to complete a few tasks
University
Appdynamics.com/university
Community
community.appdynamics.com Tech Webinars
Additional Learning Opportunities
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 42
What are the Resources?
Fan Club
University
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 43
Multiple Track Courses and Certifications @ appdynamics.com/university
Sign Up for Multiple Tracks and Course Dates
for Live Training Sessions
Watch quick task-based tutorials
Take Self-Paced courses to learn at your own pace
Access subscriber only contents
Community
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 44
Connect With Other Users And Experts @ community.appdynamics.com
Exchange information with other
Power Users and AppDynamics experts
Get AppDynamics-supported
and author-supported extensions
Tech Webinars
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 45
Attend for free
Every other Wednesday at10:00am PT
45 Min presentation followed by a Q&A session
View the Tech Webinars Schedule to register for
upcoming webinars and watch pastpresentations.
Join The FanClub
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 46
We love our customers and partners. Let us thank you for your ongoing support.
See new features and roadmaps
Try new products and beta programs
Access custom extensions and training
MeetAppDynamics Executives
Get premium swag and invitations to events
Sign up and claim your benefits
by clicking here to submit the request!
Thank You
Please fill out the survey:
https://www.surveymonkey.com/r/AppDynamicsUniversity
Your feedback is very important to us. We use it to help us improve our content
and incorporate new features to keep our courses relevantfor our audience.
Ray Baco
ray.baco@appdynamics.com

Weitere ähnliche Inhalte

Was ist angesagt?

The Elastic Stack as a SIEM
The Elastic Stack as a SIEMThe Elastic Stack as a SIEM
The Elastic Stack as a SIEMJohn Hubbard
 
AIOUG-GroundBreakers-Jul 2019 - 19c RAC
AIOUG-GroundBreakers-Jul 2019 - 19c RACAIOUG-GroundBreakers-Jul 2019 - 19c RAC
AIOUG-GroundBreakers-Jul 2019 - 19c RACSandesh Rao
 
How to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsHow to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsSandesh Rao
 
Oracle 11g R2 RAC implementation and concept
Oracle 11g R2 RAC implementation and conceptOracle 11g R2 RAC implementation and concept
Oracle 11g R2 RAC implementation and conceptSantosh Kangane
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningScott Jenner
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
End-to-End Security Analytics with the Elastic Stack
End-to-End Security Analytics with the Elastic StackEnd-to-End Security Analytics with the Elastic Stack
End-to-End Security Analytics with the Elastic StackElasticsearch
 
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with Splunk
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with SplunkReactive to Proactive: Intelligent Troubleshooting and Monitoring with Splunk
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with SplunkSplunk
 
The Top 5 Reasons to Deploy Your Applications on Oracle RAC
The Top 5 Reasons to Deploy Your Applications on Oracle RACThe Top 5 Reasons to Deploy Your Applications on Oracle RAC
The Top 5 Reasons to Deploy Your Applications on Oracle RACMarkus Michalewicz
 
Introducing log analysis to your organization
Introducing log analysis to your organization Introducing log analysis to your organization
Introducing log analysis to your organization Sematext Group, Inc.
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsAnil Nair
 
Splunk for IT Operations
Splunk for IT OperationsSplunk for IT Operations
Splunk for IT OperationsSplunk
 
Understand oracle real application cluster
Understand oracle real application clusterUnderstand oracle real application cluster
Understand oracle real application clusterSatishbabu Gunukula
 
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified [❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified ZanderHaney
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman scriptMaris Elsins
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeAppDynamics
 
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeBecome an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeAppDynamics
 

Was ist angesagt? (20)

The Elastic Stack as a SIEM
The Elastic Stack as a SIEMThe Elastic Stack as a SIEM
The Elastic Stack as a SIEM
 
AIOUG-GroundBreakers-Jul 2019 - 19c RAC
AIOUG-GroundBreakers-Jul 2019 - 19c RACAIOUG-GroundBreakers-Jul 2019 - 19c RAC
AIOUG-GroundBreakers-Jul 2019 - 19c RAC
 
How to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsHow to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata Environments
 
Oracle 11g R2 RAC implementation and concept
Oracle 11g R2 RAC implementation and conceptOracle 11g R2 RAC implementation and concept
Oracle 11g R2 RAC implementation and concept
 
Splunk-Presentation
Splunk-Presentation Splunk-Presentation
Splunk-Presentation
 
Oracle R12 EBS Performance Tuning
Oracle R12 EBS Performance TuningOracle R12 EBS Performance Tuning
Oracle R12 EBS Performance Tuning
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
End-to-End Security Analytics with the Elastic Stack
End-to-End Security Analytics with the Elastic StackEnd-to-End Security Analytics with the Elastic Stack
End-to-End Security Analytics with the Elastic Stack
 
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with Splunk
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with SplunkReactive to Proactive: Intelligent Troubleshooting and Monitoring with Splunk
Reactive to Proactive: Intelligent Troubleshooting and Monitoring with Splunk
 
Oracle Database Cloud Service
Oracle Database Cloud ServiceOracle Database Cloud Service
Oracle Database Cloud Service
 
The Top 5 Reasons to Deploy Your Applications on Oracle RAC
The Top 5 Reasons to Deploy Your Applications on Oracle RACThe Top 5 Reasons to Deploy Your Applications on Oracle RAC
The Top 5 Reasons to Deploy Your Applications on Oracle RAC
 
Introducing log analysis to your organization
Introducing log analysis to your organization Introducing log analysis to your organization
Introducing log analysis to your organization
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret Internals
 
Splunk for IT Operations
Splunk for IT OperationsSplunk for IT Operations
Splunk for IT Operations
 
Understand oracle real application cluster
Understand oracle real application clusterUnderstand oracle real application cluster
Understand oracle real application cluster
 
Oracle ASM Training
Oracle ASM TrainingOracle ASM Training
Oracle ASM Training
 
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified [❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman script
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
 
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeBecome an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
 

Ähnlich wie Memory Heap Analysis with AppDynamics - AppSphere16

Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12sidg75
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with BlackfireMarko Mitranić
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK toolsHaribabu Nandyal Padmanaban
 
Software Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsSoftware Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsIsuru Perera
 
Java Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderJava Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderIsuru Perera
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaIsuru Perera
 
Improving Drupal Performances
Improving Drupal PerformancesImproving Drupal Performances
Improving Drupal PerformancesVladimir Ilic
 
TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012Ashish Bhasin
 
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...Padma shree. T
 
Java programing considering performance
Java programing considering performanceJava programing considering performance
Java programing considering performanceRoger Xia
 
Memory Leak Profiling with NetBeans and HotSpot
Memory Leak Profiling with NetBeans and HotSpotMemory Leak Profiling with NetBeans and HotSpot
Memory Leak Profiling with NetBeans and HotSpotjavapsyche
 
performance optimization: Memory
performance optimization: Memoryperformance optimization: Memory
performance optimization: Memory晓东 杜
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination ExtRohit Kelapure
 
Building High Performance and Scalable Applications Using AppFabric Cache- Im...
Building High Performance and Scalable Applications Using AppFabric Cache- Im...Building High Performance and Scalable Applications Using AppFabric Cache- Im...
Building High Performance and Scalable Applications Using AppFabric Cache- Im...Impetus Technologies
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about javakanchanmahajan23
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and ProfilingWSO2
 
Tuning Java for Big Data
Tuning Java for Big DataTuning Java for Big Data
Tuning Java for Big DataScott Seighman
 

Ähnlich wie Memory Heap Analysis with AppDynamics - AppSphere16 (20)

Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
Software Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsSoftware Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and Flamegraphs
 
Java Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderJava Performance and Using Java Flight Recorder
Java Performance and Using Java Flight Recorder
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in Java
 
Improving Drupal Performances
Improving Drupal PerformancesImproving Drupal Performances
Improving Drupal Performances
 
TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012
 
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
Java programing considering performance
Java programing considering performanceJava programing considering performance
Java programing considering performance
 
Memory Leak Profiling with NetBeans and HotSpot
Memory Leak Profiling with NetBeans and HotSpotMemory Leak Profiling with NetBeans and HotSpot
Memory Leak Profiling with NetBeans and HotSpot
 
performance optimization: Memory
performance optimization: Memoryperformance optimization: Memory
performance optimization: Memory
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
 
Building High Performance and Scalable Applications Using AppFabric Cache- Im...
Building High Performance and Scalable Applications Using AppFabric Cache- Im...Building High Performance and Scalable Applications Using AppFabric Cache- Im...
Building High Performance and Scalable Applications Using AppFabric Cache- Im...
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and Profiling
 
SWTT 140407 session04
SWTT 140407 session04SWTT 140407 session04
SWTT 140407 session04
 
Tuning Java for Big Data
Tuning Java for Big DataTuning Java for Big Data
Tuning Java for Big Data
 

Mehr von AppDynamics

Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonGood Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonAppDynamics
 
Top Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonTop Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonAppDynamics
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonAppDynamics
 
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...AppDynamics
 
Just Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonJust Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonAppDynamics
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonAppDynamics
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...AppDynamics
 
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonOvercoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonAppDynamics
 
Equinor: What does normal look like?
Equinor: What does normal look like? Equinor: What does normal look like?
Equinor: What does normal look like? AppDynamics
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...AppDynamics
 
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmTop Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmAppDynamics
 
What's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourWhat's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourAppDynamics
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...AppDynamics
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...AppDynamics
 
Mastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeMastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeAppDynamics
 
Business iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeBusiness iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeAppDynamics
 
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeContainers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeAppDynamics
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...AppDynamics
 
AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics
 

Mehr von AppDynamics (20)

Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonGood Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
 
Top Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonTop Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour London
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour London
 
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
 
Just Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonJust Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour London
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour London
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
 
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonOvercoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
 
Equinor: What does normal look like?
Equinor: What does normal look like? Equinor: What does normal look like?
Equinor: What does normal look like?
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
 
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmTop Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
 
What's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourWhat's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global Tour
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
 
Mastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeMastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit Europe
 
Business iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeBusiness iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit Europe
 
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeContainers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
 
AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16
 

Kürzlich hochgeladen

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 

Kürzlich hochgeladen (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 

Memory Heap Analysis with AppDynamics - AppSphere16

  • 1. Memory Heap Analysis with AppDynamics AppDynamics Version 4.2
  • 2. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2 Notice The information and materials included in this presentation (collectively, the “Materials”) are the confidential and proprietary information of AppDynamics, Inc. (the “Company”). No part of the Materials may be reproduced, distributed, communicated or displayed in any form or by any means, or used to make any derivative work, without prior written permission from the Company. © 2016 AppDynamics, Inc. All rights reserved. All third party trademarks, including names, logos and brands, referenced by the Company in this presentation are property of their respective owners. All references to third party trademarks are for identification purposes only and shall be considered nominative fair use under trademark law.
  • 3. Objectives By the end of this course, you will be able to: • Describe Java memory managementin detail • Visualize Java garbage collection processes with a profiler • Use the AppDynamics Memory dashboard to monitor and troubleshootgarbage collection issues in your applications • Use AppDynamics ObjectInstance Tracking and Automatic Leak Detection features to find the root cause of many common memory issues in Java applications • Describe the issues with ClassLoader leaks and other PermGen / MetaSpace issues, and how to preventthem APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 3 Course After completing the labs in the course,you will be able to use Object Instance Tracking,and Automatic Leak Detection to help troubleshootmemory problems and find the root cause of these issues. Labs
  • 4. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 4 Topic 1 Garbage Collection Explained A. How Garbage Collection Works In Java B. The Anatomy Of The Java Memory Heap C. Using A Profiler To Visualize The Java Memory Heap Topic 2 Memory Heap Analysis Tooling & Workflows A. Available Tooling B. Using Automatic Leak Detection And Object Instance Tracking C. OutOfMemoryError ! = Memory Leak D. The Problem Of ClassLoader Leaks Memory Heap Analysis with AppDynamics Agenda
  • 5. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 5 Topic 1 Garbage Collection Explained A. How Garbage Collection Works In Java B. The Anatomy Of The Java Memory Heap C. Using A Profiler To Visualize The Java Memory Heap Agenda Memory Heap Analysis with AppDynamics
  • 6. Java Memory Management Most Java developers know thatJava uses automatic memory management,and that a garbage collector manages memory withoutthe need for explicit developer interaction. Few of us know the details and limitations of the garbage collector’s inner workings,and even fewer know what to look for in order to ensure that a Java application is notinadvertently preventing the garbage collector from doing its job effectively. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 6 Concepts, Details & Limitations We’ll explain the concepts behind memory management,and go into detail abouthow garbage collection works,then we’ll cover the types of garbage collectors available to Java virtual machines,and some situations in which they might be useful. Finally,we’ll actually look at garbage collection in action with the help of a profiler.
  • 7. Garbage Collection Concepts First, what we all know about Java memory management and garbage collection • Java collects memory automatically by running one or more garbage collector threads thatremove objects that are no longer needed by the application • Therefore, Java can not produce a memory leak per se, right? We’ll not really.We’ll examine this question further. The biggestreason that the 2nd bulleton the left is not always true is that what Java thinks is “no longer needed” may differ from what you, the developer think, so an application may leak memory because objects that you think are “no longer needed” are keptin memory by Java. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 7 Concepts, Details & Limitations BAD NEWS Knowing how the garbage collector works is more complicated than it seems. GOOD NEWS Java generally “does the right thing”,so if you know how the garbage collector works, you should be able to avoid most memory management issues
  • 8. Knowing How The Garbage Collector Works Because one can not force the garbage collector to do its job on command, this is more complex than following simple guidelines like • Setting all objects to null when no longer needed • Calling System.gc() • Using certain design patterns Each situation you encounter may be different and requires analysis. Rather than following a recipe,it is best to understand conceptually how the garbage collection process works. Once you know the conceptual framework,you will usually be able to analyze a situation and make the right decisions to avoid memory issues. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 8 Concepts, Details & Limitations
  • 9. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 9 Topic 1 Garbage Collection Explained A. How Garbage Collection Works In Java B. The Anatomy Of The Java Memory Heap C. Using A Profiler To Visualize The Java Memory Heap Memory Heap Analysis with AppDynamics Agenda
  • 10. Setting The Stage There are many kinds of Java applications, and, as stated earlier, they are all different and need to be analyzed. However, we can make some basic assumptions that will help narrow the space to a manageable one. 1. Our target application will be a Java Web Application running on an Oracle Java 7+ JVM 2. We’ll use Tomcat Application Server,but most Java EE servers have similar memory managementcharacteristics 3. The JVM is using the -server switch, and therefore using a server-optimized garbage collector 4. The JVM is not using the G1 garbage collector APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 10
  • 11. The HotSpot Memory Space APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 11 A HotSpot JVM contains a number of different memory spaces In our discussions of memory management, we’ll concentrate on the heap,as it contains the majority of application objectinstances that are garbage collected during the life of the application The various memory spaces are The heap contains (most) objectreferences. This is segmented into different regions or generations Stacks and other memory spaces includes the stacks as well as method, thread, native, and JVM execution spaces,and are smaller than the heap
  • 12. Short- v. Long-Lived Objects In Web Apps APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 12 In our discussions of memory management,we’ll concentrate on the heap,as it contains the majority of application objectinstances that are garbage collected during the life of the application. OBJECT AGE NUMBEROFOBJECTS Web apps contain many more short-lived than long-lived objects, and show an inverse relationship between the number of instances and their age
  • 13. Generational Heap Structure APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 13 JVM Heap
  • 14. Generational Heap Structure APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 14 JVM Heap Minor Collection STOP THE WORLD Major Collection STOP THE WORLD
  • 15. Generational Heap Structure APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 15 JVM Heap Total Collection STOP THE WORLD
  • 16. Generational Heap Structure APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 16 JVM Heap Minor Collection STOP THE WORLD Major Collection STOP THE WORLD
  • 17. Ways to Control the Shape & Size of the Heap APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 17 -Xms //initial total heap size -Xmx //Maximum total heap size; allows the heap to grow from initial to maximum size -Xmn //Young generation size -XX:PermSize //Initial PermGen size -XX:MaxPermSize //Maximum PermGen size; allows PermGen to grow from initial to maximum size Java has a number of system switches that allow developers to control the size or relative size of the different parts of the heap
  • 18. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 18 Topic 1 Garbage Collection Explained A. How Garbage Collection Works In Java B. The Anatomy Of The Java Memory Heap C. Using A Profiler To Visualize The Java Memory Heap Memory Heap Analysis with AppDynamics Agenda
  • 19. Types Of Garbage Collectors APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 19 SerialGC Optimized for client applications with small memory footprints ParallelGC Uses multiple threads to GC. Optimized for situations in which throughputis importantand long pauses are acceptable,such as batch processing Concurrent Mark-Sweep(CMS) GC Attempts to minimize pauses.Optimized for server JVMs Garbage First (G1) GC Attempts to improve on CMS GC performance while providing configurable pause thresholds
  • 20. Serial GC APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 20 -XX:+UseSerialGC Java has a number of system switches that allow developers to control the size or relative size of the different parts of the heap • Uses a single thread for both major and minor collections • Uses compacting in the Old Gen to move surviving objects to contiguous memory,which makes it faster to allocate memory for new objects • Best for clientapplications with small memory footprints To use the SerialGC collector,add the following switch to your Java command: STOP THE WORLD PAUSE STOP THE WORLD PAUSE
  • 21. Parallel GC APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 21 -XX:+UseParallelGC //(default) parallel Young Gen + serial compacting Old Gen -XX:+UseParallelOldGC //parallel Young Gen + parallel compacting Old Gen Java has a number of system switches that allow developers to control the size or relative size of the different parts of the heap • Uses multiple threads,generally more efficientthan SerialGC • Will perform better than SerialGC on host with 3+ CPUs • Optimized for throughput.However,long pauses will occur for major collections • Best for batch processing environments thatrequire high throughput,but not high responsiveness The ParallelGC collector comes in two flavors: STOP THE WORLD PAUSE STOP THE WORLD PAUSE
  • 22. Concurrent Mark-Sweep(CMS) GC APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 22 -XX:+UseConcMarkSweepGC //in addition, the number of threads used is set with -XX:ParallelCMSThreads=<n> //where <n> is the number of threads required Java has a number of system switches that allow developers to control the size or relative size of the different parts of the heap • Only an Old Gen collector.Uses the same algorithm as ParallelGC for Young Gen • No compaction.If fragmentation is an issue, switch to ParallelGC or use larger heap • Optimized for low pause length relative to ParallelGC • Performs majority of GC work concurrently with the application threads (less Stop The World time). • Best for server apps that need to be highly responsive The CMS GC collector is invoked with: STOP THE WORLD PAUSE INITIAL MARK CONCURRENTMARK REMARK
  • 23. Garbage First (G1) GC APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 23 -XX:+UseG1GC //in addition, the maximum pause length can be set with -XX:MaxGCPauseMillis=<n> //the default is 200 Java has a number of system switches that allow developers to control the size or relative size of the different parts of the heap • Is a parallel,concurrent,incrementally compacting low-pause collector – the most advanced general purpose collector available • Divides the heap into small regions of equal size, rather than Young and Old generations • Focuses on collecting regions with few live objects • Always compacts objects into differentregion,and leaves the current region empty • Decreases pause time, because whole region can be collected in one operation;Includes a pause-time threshold control The CMS GC collector is invoked with
  • 24. Instructor Demo APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 24 Visualizing the Garbage Collection Process
  • 25. Java Garbage Collection In Action APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 25 To take the concepts we’ve learned aboutgarbage collection and make them more concrete,we’ll actually take a look at garbage collection in action We will use the standard Java profiler that comes with the JDK, JVisualVM,on a web application running on Tomcat 7 and JDK 7, and see whatthe memory heap actually looks like in real-time
  • 26. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26 Topic 2 Memory HeapAnalysis Tooling & Workflows A. Available Tooling B. Using Automatic Leak Detection And Object Instance Tracking C. OutOfMemoryError ! = Memory Leak D. The Problem Of ClassLoader Leaks Memory Heap Analysis with AppDynamics Agenda
  • 27. Node-Level Memory Dashboard APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 27 AGENTS Shows state of all AppDynamics agents associated with this node • App Server Agent • Machine Agent • Agent Diagnostics HARDWARE Shows CPU/ Memory Utilization and File/Network I/O metrics MEMORY Shows JVM/CLR Heap state •Object Instance Tracking •Automatic Leak Detection Provides detailed information on the state of each node
  • 28. Object Instance Tracking(OIT) APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 28 Shows the allocated trend for • Top 20 Application Classes • Top 20 System Classes • Custom Classes OIT allows a drill-down into how objects are being instantiated and which part of your application code is creating each objecttype. It is useful for diagnostic memory leak/memory thrash situations.
  • 29. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 29 Topic 2 Memory HeapAnalysis Tooling & Workflows A. Available Tooling B. Using Automatic Leak DetectionAnd Object Instance Tracking C. OutOfMemoryError ! = Memory Leak D. The Problem Of ClassLoader Leaks Memory Heap Analysis with AppDynamics Agenda
  • 30. Automatic Leak Detection(ALD) APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30 • Monitors all collection classes in your application • Shows any collections thatare growing monotonously for a long time • Useful for detecting collection- based memory leaks • Can cause significant overhead:Best used in dev/test. If used in production, enable on a single node rather than the whole tier
  • 31. Instructor Demo APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 31 Workflow for Memory Heap Analysis
  • 32. Using Object Instance Tracking APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 32 We will cause our web application to experience a memory leak by repeatedly adding instances ofan objectin memory. Then we’ll monitor the app with Object Instance Tracking and see if we can find the objects responsible for the memory leak. If we do find some suspect classes, we’ll start an allocation tracking session to see where these objects are being created in our code.
  • 33. Using Automatic Leak Detection APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 33 We will now cause our web application to experience a collection- based memory leak. Then we’ll monitor with Automatic Leak Detection and see if ALD can pinpoint the leaking collection. If we do find a culprit, we can run allocation sessions to find out what is in the collection and where in our code it is being allocated.
  • 34. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 34 Topic 2 Memory HeapAnalysis Tooling & Workflows A. Available Tooling B. Using Automatic Leak Detection And Object Instance Tracking C. OutOfMemoryError ! = Memory Leak D. The Problem Of ClassLoader Leaks Memory Heap Analysis with AppDynamics Agenda
  • 35. Non-Memory Leak Cause of OutOfMemoryError APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 35 Heap is too small for (normal) operation Overload causes heap to fill OutOfMemoryError in PermGen Misconfiguration or Capacity Mismatch Misconfiguration or Capacity Mismatch Misconfiguration (but see ClassLoader leak issue, discussed next) OutOfMemoryError can happen for a number of reasons
  • 36. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 36 Topic 2 Memory HeapAnalysis Tooling & Workflows A. Available Tooling B. Using Automatic Leak Detection And Object Instance Tracking C. OutOfMemoryError ! = Memory Leak D. The Problem Of ClassLoader Leaks Memory Heap Analysis with AppDynamics Agenda
  • 37. ClassLoader Reference Cannot Be Garbage APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 37 Except sometimes Any time that a class is loaded inside your application by the system ClassLoader,a memory leak may result Given the fact that the ClassLoader has references to every Class objectin your application,this can chew up the PermGen quickly • Best way to explain is to look at an example.An excellent one is the issue of loading JDBC drivers • The below code loads a JDBC driver Class.forName(“com.mysql.jdbc.Driver”); Connection c = DriverManager.getConnection(“jdbc:mysql://dbhost/dbName”); …
  • 38. Many So-Called System Classes APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 38 This can occur with any of them While the JDBC driver is a very common example, what I’m about to show you can happen with any of the following • Bean introspection caches • Shutdown hooks • Custom defaultauthenticator • Custom security providers • Custom MBeans,ThreadGroups,or PropertyEditors Now back to loading our JDBC driver…
  • 39. Reference Map From JRE System Object to Your Application ClassLoader APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 39
  • 40. General Rule For Web Apps APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 40 The general rule applies to many other System classes and resources • If you load a class in your application thatwill register itselfwith the system, when your web application is reloaded,the JVM may not be able to garbage collectthe ClassLoader • Any time you have an OutOfMemoryError in PermGen, you should suspect a ClassLoader leak • Since many classes register themselves with a central system registry, this is often called the “central registration problem” and itleads directly to PermGen memory leaks as web applications are redeployed by the app server • The problem can be particularly severe in continuous integration environments in which applications are redeployed regularly The way to solve the JDBC issue in our example is easy — simply move the JDBC driver class from your application to the common app server
  • 41. What We Learned Today APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 41 • Describe in detail the structure of the Java HotSpot JVM memory space • Understand the process of garbage collection and how objects are promoted through the differentmemory spaces in the Java heap • Describe the differenttypes of garbage collectors available in Java,and what conditions they are optimized for • Use AppDynamics memory managementtools like ALD and OIT to diagnose memory issues in your application • Understand the causes of ClassLoader memory leaks and how to avoid them You should now be able to complete a few tasks
  • 42. University Appdynamics.com/university Community community.appdynamics.com Tech Webinars Additional Learning Opportunities APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 42 What are the Resources? Fan Club
  • 43. University APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 43 Multiple Track Courses and Certifications @ appdynamics.com/university Sign Up for Multiple Tracks and Course Dates for Live Training Sessions Watch quick task-based tutorials Take Self-Paced courses to learn at your own pace Access subscriber only contents
  • 44. Community APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 44 Connect With Other Users And Experts @ community.appdynamics.com Exchange information with other Power Users and AppDynamics experts Get AppDynamics-supported and author-supported extensions
  • 45. Tech Webinars APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 45 Attend for free Every other Wednesday at10:00am PT 45 Min presentation followed by a Q&A session View the Tech Webinars Schedule to register for upcoming webinars and watch pastpresentations.
  • 46. Join The FanClub APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 46 We love our customers and partners. Let us thank you for your ongoing support. See new features and roadmaps Try new products and beta programs Access custom extensions and training MeetAppDynamics Executives Get premium swag and invitations to events Sign up and claim your benefits by clicking here to submit the request!
  • 47. Thank You Please fill out the survey: https://www.surveymonkey.com/r/AppDynamicsUniversity Your feedback is very important to us. We use it to help us improve our content and incorporate new features to keep our courses relevantfor our audience. Ray Baco ray.baco@appdynamics.com