Enviar pesquisa
Carregar
Java Flight Recorder Behind the Scenes
•
7 gostaram
•
3,412 visualizações
S
Staffan Larsen
Seguir
Presentation from JavaOne 2013
Leia menos
Leia mais
Tecnologia
Notícias e política
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Hiroaki NAKADA
DevOps for database
DevOps for database
Osama Mustafa
Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)
JungIn Jung
OpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Red Hat Developers
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
Brendan Gregg
Runing JMeter Tests On Rancher
Runing JMeter Tests On Rancher
Bogdan Marian
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
Recomendados
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Hiroaki NAKADA
DevOps for database
DevOps for database
Osama Mustafa
Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)
JungIn Jung
OpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Red Hat Developers
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
Brendan Gregg
Runing JMeter Tests On Rancher
Runing JMeter Tests On Rancher
Bogdan Marian
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
Manabu Ori
Automated out-of-band management with Ansible and Redfish
Automated out-of-band management with Ansible and Redfish
Jose De La Rosa
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE
Linaro
z/OS Communications Server Technical Update
z/OS Communications Server Technical Update
zOSCommserver
Adopting OpenTelemetry
Adopting OpenTelemetry
Vincent Behar
Your 1st Ceph cluster
Your 1st Ceph cluster
Mirantis
SRE & Kubernetes
SRE & Kubernetes
Afkham Azeez
Network Topology Mapper 5.6
Network Topology Mapper 5.6
SolarWinds
APC InRack (RACS) Configurations
APC InRack (RACS) Configurations
Saeed Arabnia
Oracle it runs zfs storage appliance
Oracle it runs zfs storage appliance
solarisyougood
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Odinot Stanislas
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Vietnam Open Infrastructure User Group
IBM Health Center Details
IBM Health Center Details
Rohit Kelapure
Container Performance Analysis
Container Performance Analysis
Brendan Gregg
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
zOSCommserver
Ceph and Openstack in a Nutshell
Ceph and Openstack in a Nutshell
Karan Singh
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Flink Forward
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
ShapeBlue
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
Akihiro Suda
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Brendan Gregg
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
Staffan Larsen
Java mission control and java flight recorder
Java mission control and java flight recorder
Wolfgang Weigend
Mais conteúdo relacionado
Mais procurados
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
Manabu Ori
Automated out-of-band management with Ansible and Redfish
Automated out-of-band management with Ansible and Redfish
Jose De La Rosa
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE
Linaro
z/OS Communications Server Technical Update
z/OS Communications Server Technical Update
zOSCommserver
Adopting OpenTelemetry
Adopting OpenTelemetry
Vincent Behar
Your 1st Ceph cluster
Your 1st Ceph cluster
Mirantis
SRE & Kubernetes
SRE & Kubernetes
Afkham Azeez
Network Topology Mapper 5.6
Network Topology Mapper 5.6
SolarWinds
APC InRack (RACS) Configurations
APC InRack (RACS) Configurations
Saeed Arabnia
Oracle it runs zfs storage appliance
Oracle it runs zfs storage appliance
solarisyougood
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Odinot Stanislas
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Vietnam Open Infrastructure User Group
IBM Health Center Details
IBM Health Center Details
Rohit Kelapure
Container Performance Analysis
Container Performance Analysis
Brendan Gregg
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
zOSCommserver
Ceph and Openstack in a Nutshell
Ceph and Openstack in a Nutshell
Karan Singh
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Flink Forward
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
ShapeBlue
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
Akihiro Suda
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Brendan Gregg
Mais procurados
(20)
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
Automated out-of-band management with Ansible and Redfish
Automated out-of-band management with Ansible and Redfish
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE
z/OS Communications Server Technical Update
z/OS Communications Server Technical Update
Adopting OpenTelemetry
Adopting OpenTelemetry
Your 1st Ceph cluster
Your 1st Ceph cluster
SRE & Kubernetes
SRE & Kubernetes
Network Topology Mapper 5.6
Network Topology Mapper 5.6
APC InRack (RACS) Configurations
APC InRack (RACS) Configurations
Oracle it runs zfs storage appliance
Oracle it runs zfs storage appliance
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
IBM Health Center Details
IBM Health Center Details
Container Performance Analysis
Container Performance Analysis
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
IBM z/OS Communications Server z/OS Encryption Readiness Technology (zERT)
Ceph and Openstack in a Nutshell
Ceph and Openstack in a Nutshell
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Semelhante a Java Flight Recorder Behind the Scenes
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
Staffan Larsen
Java mission control and java flight recorder
Java mission control and java flight recorder
Wolfgang Weigend
JSR107 State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
Hazelcast
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
Mark Swarbrick
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.
Alexandre (Shura) Iline
JVMs in Containers
JVMs in Containers
David Delabassee
ASML_FlightRecorderMeetsJava.pdf
ASML_FlightRecorderMeetsJava.pdf
Miro Wengner
Coherence 12.1.2 Hidden Gems
Coherence 12.1.2 Hidden Gems
harvraja
DevDays: Profiling With Java Flight Recorder
DevDays: Profiling With Java Flight Recorder
Miro Wengner
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
AMD Developer Central
Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40
Roger Brinkley
GlassFish in Production Environments
GlassFish in Production Environments
Bruno Borges
Effective Spark on Multi-Tenant Clusters
Effective Spark on Multi-Tenant Clusters
DataWorks Summit/Hadoop Summit
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the Cloud
Arun Gupta
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance
Lucidworks (Archived)
Spark to Production @Windward
Spark to Production @Windward
Demi Ben-Ari
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Arun Gupta
C* Summit 2013: Real-Time Big Data with Storm, Cassandra, and In-Memory Compu...
C* Summit 2013: Real-Time Big Data with Storm, Cassandra, and In-Memory Compu...
DataStax Academy
Tuning Java for Big Data
Tuning Java for Big Data
Scott Seighman
Semelhante a Java Flight Recorder Behind the Scenes
(20)
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
Java mission control and java flight recorder
Java mission control and java flight recorder
JSR107 State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.
JVMs in Containers
JVMs in Containers
ASML_FlightRecorderMeetsJava.pdf
ASML_FlightRecorderMeetsJava.pdf
Coherence 12.1.2 Hidden Gems
Coherence 12.1.2 Hidden Gems
DevDays: Profiling With Java Flight Recorder
DevDays: Profiling With Java Flight Recorder
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40
GlassFish in Production Environments
GlassFish in Production Environments
Effective Spark on Multi-Tenant Clusters
Effective Spark on Multi-Tenant Clusters
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the Cloud
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance
SFBay Area Solr Meetup - June 18th: Benchmarking Solr Performance
Spark to Production @Windward
Spark to Production @Windward
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
C* Summit 2013: Real-Time Big Data with Storm, Cassandra, and In-Memory Compu...
C* Summit 2013: Real-Time Big Data with Storm, Cassandra, and In-Memory Compu...
Tuning Java for Big Data
Tuning Java for Big Data
Último
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
blackmambaettijean
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
mohitsingh558521
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
Último
(20)
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Java Flight Recorder Behind the Scenes
1.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.1
2.
Java Flight Recorder Behind
the Scenes Staffan Larsen Java SE Serviceability Architect staffan.larsen@oracle.com @stalar
3.
Copyright © 2013,
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 © 2013,
Oracle and/or its affiliates. All rights reserved.4 Java Flight Recorder § Tracer and Profiler § Non-intrusive § Built into the JVM itself § On-demand profiling § After-the-fact capture and analysis § First released in 7u40 Photograph by Jeffrey Milstein http://butdoesitfloat.com/In-the-presence-of-massive-gravitational-fields-this-perfect
5.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.5 Tracer and Profiler § Captures both JVM and application data – Garbage Collections – Synchronization – Compiler – CPU Usage – Exceptions – I/O § Sampling-based profiler – Very low overhead – Accurate data
6.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.6 Non-Intrusive § Typical overhead in benchmarks: 2-3% (!) § Often not noticeable in typical production environments § Turn on and off in runtime § Information already available in the JVM – Zero extra cost Photograph: Andrew Rivett http://www.flickr.com/photos/veggiefrog/3435380297/
7.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.7 Built into the JVM itself § Core of JFR is inside the JVM § Can easily interact with other JVM subsystems § Optimized C++ code § Supporting functionality written in Java
8.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.8 On-Demand Profiling § Start from Java Mission Control – Or from the command line § Easily configure the amount of information to capture § For a profile, a higher overhead can be acceptable § When done, no overhead § Powerful GUI for analysis
9.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.9 After-the-Fact Analysis § In its default mode, very low overhead § Designed to be always-on § Uses circular buffers to store data – In-memory or on-disk § When an SLA breach is detected, dump the current buffers § Dump will have information leading up to the problem n n+1 n+2n+3 n+4
10.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.10
11.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.11 Agenda § Overview of JFR § Demo! § Configuration topics § Implementation details
12.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.12 Configuration § Enable -‐XX:+UnlockCommercialFeatures -‐XX:+FlightRecorder § Start -‐XX:StartFlightRecording=filename=<path>,duration=<time> § Or jcmd <pid> JFR.start filename=<path> duration=<time>
13.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.13 Advanced Configuration Per Recording Session Max age of data maxage=<time> Max size to keep maxsize=<size> Global Settings (-XX:FlightRecorderOptions) Max stack trace depth stackdepth=<n> (default 64) Save recording on exit dumponexit=true Logging loglevel=[ERROR|WARN|INFO| DEBUG|TRACE] Repository path repository=<path>
14.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.14 Recording Sessions § Recordings can specify exactly which information to capture – ~80 events with 3 settings each § But: two preconfigured settings – “default”: provides as much information as possible while keeping overhead to a minimum – “profile”: has more information, but also higher overhead § You can configure your own favorites in Mission Control
15.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.15 Many Simultaneous Recording Sessions § This works great § Each session can have its own settings § Caveat: If there are multiple sessions all of them get the union of the enabled events – Ex: If event A is enabled in on recording, all recordings will see event A – Ex: If event B has two different thresholds, the lower value will apply
16.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.16 JVM 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 Java API Global Buffers GC RuntimeCompiler
17.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.17 “Everything Is an Event” § Header § Payload – Event specific data Event ID End Time Start Time Thread ID StackTrace ID Payload Header Optional Size
18.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.18 Event Types § Instant – Single point in time – Ex: Thread starts § Duration – Timing for something – Ex: GC § Requestable – Happens with a specified frequency – Ex: CPU Usage every second
19.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.19 Event Meta Data § For every event – Name, Path, Description § For every payload item – Name, Type, Description, Content Type
20.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.20 “Content Type” § Describes the semantics of a value § Used to correctly display the value in the UI Content Type Displayed as Bytes 4 MB Percentage 34 % Address 0x23CDA540 Millis 17 ms Nanos 4711 ns
21.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.21 Event Definition in Hotspot <event id="ThreadSleep" path="java/thread_sleep" label="Java Thread Sleep" ...> <value field="time" type="MILLIS" label="Sleep Time"/> </event> § XML definitions are processed into C++ classes
22.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.22 Event Emission in Hotspot JVM_Sleep(int millis) { EventThreadSleep event; ... // actual sleep happens here event.set_time(millis); event.commit(); } § Done! Data is now available in JFR
23.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.23 Thread Park <event id="ThreadPark" path="java/thread_park" label="Java Thread Park" has_thread="true" has_stacktrace="true" is_instant="false"> <value type="CLASS" field="klass" label="Class Parked On"/> <value type="MILLIS" field="timeout" label="Park Timeout"/> <value type="ADDRESS" field="address" label="Address of Object Parked"/> </event>
24.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.24 Thread Park UnsafePark(jboolean isAbsolute, jlong time) { EventThreadPark event; JavaThreadParkedState jtps(thread, time != 0); thread-‐>parker()-‐>park(isAbsolute != 0, time); if (event.should_commit()) { oop obj = thread-‐>current_park_blocker(); event.set_klass(obj ? obj-‐>klass() : NULL); event.set_timeout(time); event.set_address(obj ? (TYPE_ADDRESS)obj : 0); event.commit(); } }
25.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.25 Event Graph
26.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.26 Event Details
27.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.27 Buffers § “Circular” § Designed for low contention Thread Local Buffers Global Buffers Disk Chunk Repository JVM Java
28.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.28 Filtering Early § Enable/disable event § Thresholds – Only if duration is longer than X § Enable/disable stack trace § Frequency – Sample every X
29.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.29 File Format § Self-contained – Everything needed to parse an event is included in the file – New events instantly viewable in the UI § Binary, proprietary § Designed for fast writing § Single file, no dependencies Event Records Event Definitions …Header
30.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.30 Dynamic Runtime and Long-Running Recordings § Can’t leak memory – Can’t aggregate information eternally – Can’t keep references that prohibits class unloading § Dynamic Runtime – Classes can come and go – Threads can come and go § Solutions: Constant Pools, Checkpoints
31.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.31 Problem: Many Events Reference Classes § If every event contained the class name as a string, we would waste lots of space § Solution: Class IDs class Klass { … u8 _trace_id; … } 17event id class count java.lang.Integer 2 … 17event id class count 4711 2 …
32.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.32 Problem: When Do We Write the Class IDs? § IDs need to be part of the file § Classes can be unloaded at any time – Class may not be around until end of recording § Solution: write Class ID when classes are unloaded
33.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.33 Problem: Size of the Class List § Many classes are loaded, not all are referenced in events, we want to save space § Solution: when a class ID is referenced, the class is also “tagged” – Write only tagged classes in the JFR file #define CLASS_USED 1 void use_class_id(Klass* const klass) { klass-‐>_trace_id |= CLASS_USED; }
34.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.34 Problem: Leaking Memory § Over time many classes will be tagged, the size of the class list will increase § Solution: reset the tags each time a class list is written to disk § We call this a “Checkpoint” § A recording file may contain many class lists, each one is only valid for the data immediately preceding it
35.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.35 Constant Pools § The Class List is a special case of a Constant Pool § Classes § Methods § Threads § Thread Groups § Stack Traces § Strings class_pool.lookup(4711) ➞ java.lang.Integer method_pool.lookup(1729) ➞ java.lang.Math:pow()
36.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.36 Checkpoints § At regular intervals, a “checkpoint” is created in the recording § Has everything needed to parse the recording since the last checkpoint checkpoint = events + constant pools + event meta-data events constant pools meta-data checkpoint JFR File
37.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.37 Optimizations § Fast Timestamps – Fast, high resolution CPU time where available – Invariant TSC instructions § Stack Traces – Each event stores the thread’s stack trace – Pool of stack traces
38.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.38 Differences vs. JRockit § I/O: File path, Socket address § Exceptions § Reverse call trace view in Mission Control § Easier configuration in Mission Control § Deeper (configurable) stack traces § Internal JVM differences: GC
39.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.39 More Information § Whitepaper http://www.oracle.com/missioncontrol § User Guide http://docs.oracle.com/javase/7/docs/technotes/guides/jfr/index.html § Forum https://forums.oracle.com/community/developer/english/java/ java_hotspot_virtual_machine/java_mission_control
40.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.40 -‐XX:+UnlockCommercialFeatures -‐XX:+FlightRecorder Remember
41.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.41 @stalar staffan.larsen@oracle.com serviceability-dev@openjdk.java.net
42.
Copyright © 2013,
Oracle and/or its affiliates. All rights reserved.42
Baixar agora