SlideShare a Scribd company logo
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.2
Diagnosing Your
Application on the JVM
Staffan Larsen
Java SE Serviceability Architect
staffan.larsen@oracle.com
@stalar
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3
The following is intended to outline our general product direction. It is intended
for information purposes only, and may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or functionality, and should
not be relied upon in making purchasing decisions. The development, release,
and timing of any features or functionality described for Oracle s products
remains at the sole discretion of Oracle.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4
404 – Not Found
java.security.AccessControlException: access denied ("java.lang.management.ManagementPermission" "control")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
at java.security.AccessController.checkPermission(AccessController.java:555)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at oracle.jrockit.jfr.JFR.checkControl(JFR.java:43)
at oracle.jrockit.jfr.RepositoryChunk.<init>(RepositoryChunk.java:68)
at Demo$1.<init>(Demo.java:14)
at Demo.start(Demo.java:14)
at sun.applet.AppletPanel.run(AppletPanel.java:474)
at java.lang.Thread.run(Thread.java:722)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5
jcmd
jps
jvisualvm
jinfo
jmap
jstack
jstatd
JMX
perf counters
attach
jstat
serviceability agent
java flight recorder
java mission control
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Agenda §  Demos, walk-through
§  Internals
§  Future
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9
Demo Recap
§  jps – list processes
§  jcmd – send Diagnostic Commands
–  VM.version
–  Thread.print
–  GC.class_histogram
–  GC.heap_dump
§  jstat – see performance counters
§  Java Mission Control
§  Java Flight Recorder
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Agenda §  Demos, walk-through
§  Internals
§  Future
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11
Remote Access
§  JMX
–  jmc,	
  jvisualvm,	
  jconsole	
  
–  Access information from java.lang.management MBeans
–  SSL and authentication
–  Enable startup: -­‐Dcom.sun.management.jmxremote	
  
–  Enable runtime: jcmd	
  ManagementAgent.start	
  
§  jstatd	
  
–  Daemon that runs on remote machine
–  jstat can connect to daemon
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12
Discovery – what is running?
§  Well-known file for each JVM
–  <temp>/hsperfdata_<user>/<pid>	
  
–  /tmp/hsperfdata_staffan/3636	
  
§  Created on JVM startup
§  Deleted on JVM shutdown
§  Unused files deleted on startup
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13
Java Discovery Protocol
§  Java process will broadcast presence
–  Every 5 seconds
§  Broadcast package contains
–  Main class name
–  Unique id
–  JMX service URL
-­‐Dcom.sun.management.jmxremote.autodiscovery=true	
  
jcmd	
  ManagementAgent.start	
  jdp.port=<port>	
  
From freedigitalphotos.net/by digitalart
7u40
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14
Attach – talking to the JVM
§  Allows sending “commands” for execution in the JVM
§  Receive text output
§  Local access by same user only
§  Used by jcmd,	
  jstack,	
  jmap,	
  jinfo	
  
§  Mechanics differ on platforms
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15
Attach: Linux / BSD / Solaris
§  Create file /tmp/.attach_pid<pid>	
  
§  Send SIGQUIT to JVM
§  JVM looks for /tmp/.attach_pid<pid>	
  
–  If not found a normal thread dump is done
§  JVM will create socket: /tmp/.java_pid<pid>	
  
§  Use socket for communication
§  Solaris uses door API instead of sockets
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16
Attach: Windows
§  Remote process injects code (!) into the JVM
–  VirtualAllocEx	
  /	
  WriteProcessMemory	
  
§  Remote process creates a thread in the JVM to call the code
–  CreateRemoteThread	
  
§  The code dynamically looks up JVM_EnqueueOperation() and calls it
§  Reads result from a pipe
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17
Diagnostic Commands
§  Helper routines inside the JVM
§  Text output
§  Executed via the jcmd utility
–  soon JMX
§  Self-describing help facility
§  Different set of commands for different JVM versions
JDK 8
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18
jvmstat / PerfCounter
§  /tmp/hsperfdata_staffan/3636	
  
–  Contains a lot of run-time information about the JVM
§  Memory mapped file
§  Updated continuously by JVM
§  Use jstat to show information in readable form
§  Use "jcmd	
  PerfCounter.print" to see raw contents
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19
Monitored JVM
attach
j*
JMX
jstat
RMI
JMX
client
JMX
attach
Mission Control
VisualVM
JConsole
jcmd
jstack
jmap
jinfo
Accessing the JVM
dcmd JVM
jvmstat
jstat(d)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20
Communicating with the JVM
Local access Remote access Two-way core files
attach ✔ ✔
jvmstat ✔
JMX ✔ ✔
jstatd ✔
SA ✔ (✔) ✔
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21
attach JMX
jvmstat jstatd
RemoteLocal
Two-way
One-way
Communicating with the JVM
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22
Serviceability Agent
§  For core-files or non-responsive JVMs
§  Uses debugger to read information
§  Last resort - suspends process in unknown state
jstack	
  <executable>	
  <core>	
  
jstack	
  –F	
  <pid>	
  
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23
Monitored JVM
JVMj*
SA
jstack
jmap
jinfo
debugger
vmSymbols
Accessing the JVM
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24
Java Flight Recorder
§  JVM-built-in profiler and tracer
§  Non-intrusive
§  Always-on
§  Captures both JVM and application data
–  GC, Locks, Compiler, Exceptions, CPU Usage, I/O, …
§  After-the-fact analysis
§  Circular buffers
New!
Photograph by Jeffrey Milstein
http://butdoesitfloat.com/In-the-presence-of-massive-gravitational-fields-this-perfect
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25
JVM
JFR: How Is It Built?
§  Information gathering
–  Instrumentation calls all over the JVM
–  Application information via Java API
§  Collected in Thread Local buffers
⇢ Global Buffers ⇢Disk
§  Binary, proprietary file format
§  Managed via JMX
JFR
Thread
Buffers
Disk
JMX
GC RuntimeCompiler
Java API
Global
Buffers
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26
Java Mission Control
§  Console
–  Online Monitoring and Management
–  MBean Browser
–  Triggers & Alerts
§  UI for Java Flight Recorder
$	
  bin/jmc	
  
New!
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Agenda §  Demos, walk-through
§  Internals
§  Future
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28
Future
§  More Diagnostic Commands (jcmd)
–  Eventually replacing jstack,	
  jmap,	
  jinfo	
  
§  JMX Enhancements
–  Annotations, REST protocol, batched updates
§  Improved Logging for the JVM
–  JEP 158
§  Remove JConsole, hprof agent, jhat (?)
It’s soon here!
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Take-away
§  Know which tools exists
§  Seen the tools in use
§  Something new and something useful
§  Go and experiment with the tools!
@stalar
staffan.larsen@oracle.com
serviceability-dev@openjdk.java.net
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30
More Sessions
§  Oracle Java Mission Control: Java Flight Recorder Deep Dive
–  Tutorial
–  Today 10 am – 12 pm
§  Java Flight Recorder Behind The Scenes
–  Session
–  Wednesday 11:30 am – 12:30 pm
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31
@stalar
staffan.larsen@oracle.com
serviceability-dev@openjdk.java.net
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32

More Related Content

PPT
Java Performance Monitoring & Tuning
PPT
Jvm performance tuning
PPTX
Java performance tuning
PPTX
자바 성능 강의
PDF
I know why your Java is slow
PDF
Java black box profiling JUG.EKB 2016
PDF
Garbage First and you
PPTX
Java performance tuning
Java Performance Monitoring & Tuning
Jvm performance tuning
Java performance tuning
자바 성능 강의
I know why your Java is slow
Java black box profiling JUG.EKB 2016
Garbage First and you
Java performance tuning

What's hot (20)

PDF
The JVM is your friend
PDF
JVM Internals (2015)
PPTX
Java profiling Do It Yourself (jug.msk.ru 2016)
PDF
What's New in the JVM in Java 8?
PDF
So You Want To Write Your Own Benchmark
PDF
Java on Linux for devs and ops
PDF
Java Performance Tuning
PDF
Inside The Java Virtual Machine
PPTX
Modern Java Workshop
PPTX
Memory Management: What You Need to Know When Moving to Java 8
PPTX
Don't dump thread dumps
PDF
Java Flight Recorder Behind the Scenes
PDF
Powering the Next Generation Services with Java Platform - Spark IT 2010
PDF
JVM Memory Management Details
PPTX
Exploring Java Heap Dumps (Oracle Code One 2018)
PPTX
Java profiling Do It Yourself
PPTX
Java On Speed
PDF
Monitoring and Troubleshooting Tools in Java 9
PDF
JDK9 Features (Summary, 31/Jul/2015) #JJUG
PPT
Find bottleneck and tuning in Java Application
The JVM is your friend
JVM Internals (2015)
Java profiling Do It Yourself (jug.msk.ru 2016)
What's New in the JVM in Java 8?
So You Want To Write Your Own Benchmark
Java on Linux for devs and ops
Java Performance Tuning
Inside The Java Virtual Machine
Modern Java Workshop
Memory Management: What You Need to Know When Moving to Java 8
Don't dump thread dumps
Java Flight Recorder Behind the Scenes
Powering the Next Generation Services with Java Platform - Spark IT 2010
JVM Memory Management Details
Exploring Java Heap Dumps (Oracle Code One 2018)
Java profiling Do It Yourself
Java On Speed
Monitoring and Troubleshooting Tools in Java 9
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Find bottleneck and tuning in Java Application
Ad

Viewers also liked (11)

PDF
Debugging Your Production JVM
PPTX
Hands-on Performance Tuning Lab - Devoxx Poland
PDF
JavaOne 2014: Java Debugging
PDF
Profiler Guided Java Performance Tuning
PDF
Towards JVM Dynamic Languages Toolchain
PDF
Hotspot Garbage Collection - The Useful Parts
PPT
Efficient Memory and Thread Management in Highly Parallel Java Applications
PPT
Java Performance Tuning
PPT
Real Life Java EE Performance Tuning
ODP
An Introduction To Java Profiling
KEY
Everything I Ever Learned About JVM Performance Tuning @Twitter
Debugging Your Production JVM
Hands-on Performance Tuning Lab - Devoxx Poland
JavaOne 2014: Java Debugging
Profiler Guided Java Performance Tuning
Towards JVM Dynamic Languages Toolchain
Hotspot Garbage Collection - The Useful Parts
Efficient Memory and Thread Management in Highly Parallel Java Applications
Java Performance Tuning
Real Life Java EE Performance Tuning
An Introduction To Java Profiling
Everything I Ever Learned About JVM Performance Tuning @Twitter
Ad

Similar to Diagnosing Your Application on the JVM (20)

PPTX
GlassFish in Production Environments
PDF
JVMs in Containers - Best Practices
PDF
JVMs in Containers
PDF
Why should i switch to Java SE 7
PDF
GlassFish REST Administration Backend at JavaOne India 2012
PDF
Troubleshooting Tools In JDK
PPTX
Production Time Profiling Out of the Box
ODP
Java code coverage with JCov. Implementation details and use cases.
PDF
GlassFish REST Administration Backend
PPT
GlassFish BOF
PDF
Batch Applications for the Java Platform
PDF
Ebs performance tuning session feb 13 2013---Presented by Oracle
PDF
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
PDF
Oracle Solaris 11.1 New Features
PPT
Have You Seen Java EE Lately?
PDF
A Glance At The Java Performance Toolbox
PDF
Haj 4344-java se 9 and the application server-1
PPTX
Java Mission Control in Java SE 7U40
PDF
Best Practices for Interoperable XML Databinding with JAXB
PDF
20151010 my sq-landjavav2a
GlassFish in Production Environments
JVMs in Containers - Best Practices
JVMs in Containers
Why should i switch to Java SE 7
GlassFish REST Administration Backend at JavaOne India 2012
Troubleshooting Tools In JDK
Production Time Profiling Out of the Box
Java code coverage with JCov. Implementation details and use cases.
GlassFish REST Administration Backend
GlassFish BOF
Batch Applications for the Java Platform
Ebs performance tuning session feb 13 2013---Presented by Oracle
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Oracle Solaris 11.1 New Features
Have You Seen Java EE Lately?
A Glance At The Java Performance Toolbox
Haj 4344-java se 9 and the application server-1
Java Mission Control in Java SE 7U40
Best Practices for Interoperable XML Databinding with JAXB
20151010 my sq-landjavav2a

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Building Integrated photovoltaic BIPV_UPV.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Modernizing your data center with Dell and AMD
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Big Data Technologies - Introduction.pptx
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
cuic standard and advanced reporting.pdf
Encapsulation_ Review paper, used for researhc scholars
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.

Diagnosing Your Application on the JVM

  • 1. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
  • 2. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.2 Diagnosing Your Application on the JVM Staffan Larsen Java SE Serviceability Architect staffan.larsen@oracle.com @stalar
  • 3. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle.
  • 4. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4 404 – Not Found java.security.AccessControlException: access denied ("java.lang.management.ManagementPermission" "control") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364) at java.security.AccessController.checkPermission(AccessController.java:555) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at oracle.jrockit.jfr.JFR.checkControl(JFR.java:43) at oracle.jrockit.jfr.RepositoryChunk.<init>(RepositoryChunk.java:68) at Demo$1.<init>(Demo.java:14) at Demo.start(Demo.java:14) at sun.applet.AppletPanel.run(AppletPanel.java:474) at java.lang.Thread.run(Thread.java:722)
  • 5. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5 jcmd jps jvisualvm jinfo jmap jstack jstatd JMX perf counters attach jstat serviceability agent java flight recorder java mission control
  • 6. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
  • 7. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Agenda §  Demos, walk-through §  Internals §  Future
  • 8. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
  • 9. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9 Demo Recap §  jps – list processes §  jcmd – send Diagnostic Commands –  VM.version –  Thread.print –  GC.class_histogram –  GC.heap_dump §  jstat – see performance counters §  Java Mission Control §  Java Flight Recorder
  • 10. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Agenda §  Demos, walk-through §  Internals §  Future
  • 11. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11 Remote Access §  JMX –  jmc,  jvisualvm,  jconsole   –  Access information from java.lang.management MBeans –  SSL and authentication –  Enable startup: -­‐Dcom.sun.management.jmxremote   –  Enable runtime: jcmd  ManagementAgent.start   §  jstatd   –  Daemon that runs on remote machine –  jstat can connect to daemon
  • 12. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12 Discovery – what is running? §  Well-known file for each JVM –  <temp>/hsperfdata_<user>/<pid>   –  /tmp/hsperfdata_staffan/3636   §  Created on JVM startup §  Deleted on JVM shutdown §  Unused files deleted on startup
  • 13. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 Java Discovery Protocol §  Java process will broadcast presence –  Every 5 seconds §  Broadcast package contains –  Main class name –  Unique id –  JMX service URL -­‐Dcom.sun.management.jmxremote.autodiscovery=true   jcmd  ManagementAgent.start  jdp.port=<port>   From freedigitalphotos.net/by digitalart 7u40
  • 14. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14 Attach – talking to the JVM §  Allows sending “commands” for execution in the JVM §  Receive text output §  Local access by same user only §  Used by jcmd,  jstack,  jmap,  jinfo   §  Mechanics differ on platforms
  • 15. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15 Attach: Linux / BSD / Solaris §  Create file /tmp/.attach_pid<pid>   §  Send SIGQUIT to JVM §  JVM looks for /tmp/.attach_pid<pid>   –  If not found a normal thread dump is done §  JVM will create socket: /tmp/.java_pid<pid>   §  Use socket for communication §  Solaris uses door API instead of sockets
  • 16. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16 Attach: Windows §  Remote process injects code (!) into the JVM –  VirtualAllocEx  /  WriteProcessMemory   §  Remote process creates a thread in the JVM to call the code –  CreateRemoteThread   §  The code dynamically looks up JVM_EnqueueOperation() and calls it §  Reads result from a pipe
  • 17. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Diagnostic Commands §  Helper routines inside the JVM §  Text output §  Executed via the jcmd utility –  soon JMX §  Self-describing help facility §  Different set of commands for different JVM versions JDK 8
  • 18. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18 jvmstat / PerfCounter §  /tmp/hsperfdata_staffan/3636   –  Contains a lot of run-time information about the JVM §  Memory mapped file §  Updated continuously by JVM §  Use jstat to show information in readable form §  Use "jcmd  PerfCounter.print" to see raw contents
  • 19. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19 Monitored JVM attach j* JMX jstat RMI JMX client JMX attach Mission Control VisualVM JConsole jcmd jstack jmap jinfo Accessing the JVM dcmd JVM jvmstat jstat(d)
  • 20. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20 Communicating with the JVM Local access Remote access Two-way core files attach ✔ ✔ jvmstat ✔ JMX ✔ ✔ jstatd ✔ SA ✔ (✔) ✔
  • 21. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21 attach JMX jvmstat jstatd RemoteLocal Two-way One-way Communicating with the JVM
  • 22. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22 Serviceability Agent §  For core-files or non-responsive JVMs §  Uses debugger to read information §  Last resort - suspends process in unknown state jstack  <executable>  <core>   jstack  –F  <pid>  
  • 23. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23 Monitored JVM JVMj* SA jstack jmap jinfo debugger vmSymbols Accessing the JVM
  • 24. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24 Java Flight Recorder §  JVM-built-in profiler and tracer §  Non-intrusive §  Always-on §  Captures both JVM and application data –  GC, Locks, Compiler, Exceptions, CPU Usage, I/O, … §  After-the-fact analysis §  Circular buffers New! Photograph by Jeffrey Milstein http://butdoesitfloat.com/In-the-presence-of-massive-gravitational-fields-this-perfect
  • 25. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25 JVM JFR: How Is It Built? §  Information gathering –  Instrumentation calls all over the JVM –  Application information via Java API §  Collected in Thread Local buffers ⇢ Global Buffers ⇢Disk §  Binary, proprietary file format §  Managed via JMX JFR Thread Buffers Disk JMX GC RuntimeCompiler Java API Global Buffers
  • 26. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26 Java Mission Control §  Console –  Online Monitoring and Management –  MBean Browser –  Triggers & Alerts §  UI for Java Flight Recorder $  bin/jmc   New!
  • 27. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Agenda §  Demos, walk-through §  Internals §  Future
  • 28. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28 Future §  More Diagnostic Commands (jcmd) –  Eventually replacing jstack,  jmap,  jinfo   §  JMX Enhancements –  Annotations, REST protocol, batched updates §  Improved Logging for the JVM –  JEP 158 §  Remove JConsole, hprof agent, jhat (?) It’s soon here!
  • 29. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29 Take-away §  Know which tools exists §  Seen the tools in use §  Something new and something useful §  Go and experiment with the tools! @stalar staffan.larsen@oracle.com serviceability-dev@openjdk.java.net
  • 30. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30 More Sessions §  Oracle Java Mission Control: Java Flight Recorder Deep Dive –  Tutorial –  Today 10 am – 12 pm §  Java Flight Recorder Behind The Scenes –  Session –  Wednesday 11:30 am – 12:30 pm
  • 31. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31 @stalar staffan.larsen@oracle.com serviceability-dev@openjdk.java.net
  • 32. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32