SlideShare a Scribd company logo
Troubleshooting with
Serviceability and the New
Runtime Monitoring Tool:
HeapStats
JavaOne 2014 BOF3018
Yuji KUBOTA (@sugarlife) / Shinji TAKAO
Nippon Telegraph and Telephone Corp.
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Questions and comments
 #heapstats
Questions on twitter
are appreciated!
We will response correctly
than via hearing-loss :)
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
What will we talk about?
2	
Troubleshooting of Java systems
especially :
•  in operating phase
•  using free / open source tools for
OracleJDK and OpenJDK
on Linux for x86 (32/64)
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Who are we?
• Yuji Kubota (hearing impaired, @sugarlife)
Shinji Takao (me)
• IcedTea committers
• OpenJDK technical support engineers at
Nippon Telegraph and Telephone Corp.
(NTT) Open Source Software Center (OSSC) ,
Tokyo, Japan
3
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
• The OSSC provides a
technical advice for NTT
group’s companies, handled
11,735 inquiries since 2006
• We handled 404 Java related
inquiries including 259 Java
system trouble shooting
advice request since 2008
Our history with OpenJDK
4	
Development
teams
OSSC
(We are)
Operational
teams
Question
Question
Answer
Answer
NTT Group
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Topics
•  Troubleshooting
•  Categorizing
•  Problems of current trouble shootings
•  HeapStats
•  Design for “Good” troubleshooting tool
•  Demonstration with use-cases
5
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Troubleshooting
6
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Shortage of Native
Resources 9.7%
Heap/Perm/GC
31.3%
API 20.1%
Performance/stall 6.9%
Crash 19.3%
Other 12.7%
TOTAL
285
Troubles we faced
7
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Shortage of Native
Resources 9.7%
Heap/Perm/GC
31.3%
API 20.1%
Performance/stall 6.9%
Crash 19.3%
Other 12.7%
TOTAL
285
Troubles we faced
8	
Memory /
Resource related
troubles account
for 41% of all
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Case study : heap related
• Initial diagnosis
• The amount of user access was not increased
• GC worked fine and a sudden OOM had happened
• Set class histogram with OnOutOfMemory
option
• Several months later, the OOME was reproduced
9
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Case study : heap related
• Located the suspect class, but the operation
team requested more concreate evidence
• Set HeapDumpOnOutOfMemory and waited
another OOME
• Data elicited from the heapdump indicate that a
database query for all of the data in a table at a
time made the result eat up the heap
10
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Shortcomings of the current way
•  Collect Information : insufficient
•  No suitable logging :
Performance vs information-richness
•  Presentation : inefficient
•  Settings about logging : complicated
11
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
OK, so, what do I have to do?
12
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
   13
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
•  Open source Java tooling project in
IcedTea community that aimed to better
monitoring and after-the-fact analysis.
•  This project provides a lightweight
JVMTI agent which attaches HotSpot
VM to collect clues, and a GUI analyzer.
14
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
What is “Good” troubleshooting tool?
#1 Collect required information.
#2 Lightweight.
#3 Visualization.
#4 Ease of use.
15
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
#1 Collect required information.
Avoid the lack of information to troubleshoot
even if a java expert is not assigned.
16
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Trade off
Lightweight Heavy
Detailed
Summary
Class	
  Histogram	
  
HeapDump	
  
ThreadDump
CoreDump	
  
(gcore)
hprof
gdb	
  /	
  jdb
No impact but short.
Need to collect
continuously.
Useful but
big impact
as FullGC.
JVM may down.
Do NOT try
at production.Process	
  	
  
Resources	
  
(e.g.	
  cpu)	
  
GC	
  Log	
  
Application	
  Log
17	
jconsole	
  
JMX	
  
JVMTI	
  
#IterateOverHeap()	
  
#FollowReferences()
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Our strategy
•  Continuously collected resource data
during JVM alives.
•  Process resources (OS / JVM).
•  Heap and GC statistics.
•  Detailed dump with stop-the-world
when JVM will die or face troubles.
•  Heap snapshots, Thread dump
•  Other os log (syslog / journald, etc)
18
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
#2 Lightweight.
Do not stop your application.
19
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
HeapStats collect data per Major GC.
•  HeapStats agent hooks the
marking or sweep phases of the
garbage collector to collect java
runtime information by oop
(ordinary object pointer)
without extra stop the world.
20
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
GC process of HotSpot VM
Thread	
  stack
Object	
  monitor
JNI	
  Reference
GC	
  Root
21	
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Sweep
Live	
  object
Mark
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
How to hook the marking
22	
✔
Object
virtual	
  calculateSize()	
  
	
  
:	
  
JVM	
  internal	
  (C++)
Java	
  Object
virtual	
  marking()
Class	
  Object
virtual	
  marking()
Primitive	
  Object
virtual	
  marking()
vtable
marking
virtual	
  marking()	
  
Insert	
  	
  
to	
  collect
override_marking(AMD64):	
  
	
  	
  	
  	
  push	
  [register	
  for	
  argument]	
  
	
  	
  	
  	
  mov	
  	
  [argument]	
  [register]	
  
	
  	
  	
  	
  call	
  [collect	
  information]	
  
	
  	
  	
  	
  pop	
  	
  [register	
  for	
  argument]	
  
	
  	
  	
  	
  jmp	
  	
  XXObject::marking
Marking
Save	
  the	
  stack	
  and	
  	
  
register	
  for	
  resume	
  	
  
the	
  GC	
  process.
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Additional optimization
•  Refactor the assembly of the
override JVM inner functions to
using SSE4 / AVX instruction sets.
#ifdef	
  AVX	
  
	
  	
  #define	
  CHECK_VTABLE(oop_reg,	
  valid_caller)	
  	
  
	
  	
  	
  	
  	
  	
  vmovd	
  (oop_reg),	
  %xmm0;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  vpshufd	
  $0,	
  %xmm0,	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
mov	
  valid_caller##@GOT(%ebx),	
  %ecx;	
  	
  
vmovq	
  (%ecx),	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
vpcmpeqd	
  %xmm0,	
  %xmm1,	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  vptest	
  %xmm1,	
  %xmm1;	
  
#elif	
  defined	
  SSE4_1	
  
	
  	
  #define	
  CHECK_VTABLE(oop_reg,	
  valid_caller)	
  	
  
	
  	
  	
  	
  	
  	
  movd	
  (oop_reg),	
  %xmm0;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  pshufd	
  $0,	
  %xmm0,	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  mov	
  valid_caller##@GOT(%ebx),	
  %ecx;	
  	
  
	
  	
  	
  	
  	
  	
  movq	
  (%ecx),	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  pcmpeqd	
  %xmm0,	
  %xmm1;	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  ptest	
  %xmm1,	
  %xmm1;	
  
Ex:	
  Check	
  vtable	
  to	
  hook
23
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Result
282.68	
   269.92	
  
0	
  
50	
  
100	
  
150	
  
200	
  
250	
  
300	
  
Without	
  HeapStats	
   With	
  HeapStats	
  
4.51 %
Overhead	
  rate
(ops/m)
SPECjvm2008 Composite Result
Measurement conditions
Benchmark tool: SPECjvm2008 1.01 Machine: DELL PowerEdge R810 (Xeon X7542, 32 GB memory)
OS: Red Hat Enterprise Linux Server 6.3 x86_64 Java: java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.x86_64
Java execution options: -Xms4500m –Xmx4500m –XX:+UseG1GC –agentpath: <agent library>
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
#3 Visualization.
We do not need to hunt for treasure
from noisy and huge log.
25
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
HeapStats analyzer
•  HeapStats provides analyzer to show…
•  Process Resources (OS / JVM)
•  GC and Heap / Metaspace
•  Class Histogram
•  Timeline and Summary
•  Object reference
Overview
Detailed
26
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Process Resources (OS / JVM)
27
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
GC and Heap / Metaspace
28
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Class Histogram (timeline)
29
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Class Histogram (summary)
30
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Object Reference
31
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
#4 Ease of use.
Keep it simple, stupid
32
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Ease of use.
•  You need only 2 steps to start
then, HeapStats go live!
rpm ‒ivh heapstats*rpm
java ‒agentlib:heapstats YourApp
33	
Add	
  this	
  JVM	
  option
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Overview of HeapStats’
behavior
Java application
execution server
Operations
monitoring tool
HotSpot VM    
Java application
save logs at
current directory
(default)
Real-time detection and alert by SNMP trap
Collect data
with Low OH
Agent
Visualization
PC for Analysis
Analyzer
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Requirement(s)
•  HotSpot JVM
•  IcedTea, OpenJDK, OracleJDK
•  JDK 6 and later.
•  Debug symbol (e.g. debuginfo)
•  Linux x86 or AMD64
35
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Troubleshoot with
HeapStats
36	
Demonstration
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
One fine day
•  Customer 「Please teach us why our
application got Out of Memory. 」
•  We must answer…
•  What happen?: leak or shortage or…
•  If leak happened, what object is the
cause and how to solve it.
•  Let’s try troubleshoot with HeapStats.
37
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Demonstration
38
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Future Work
•  Collect thread statistic as GC/Heap.
•  More simple to install by yum/apt.
•  More rich interface of analyzer.
•  Remake analyzer by JavaFX.
•  Adapt JDK9 and new pause less GC
“Shenandoah”. (in review)
39
 Copyright(c)2014	
  NTT	
  Corp.	
  All	
  Rights	
  Reserved.	
  
Join us!
•  HeapStats:
http://icedtea.classpath.org/wiki/HeapStats	
  
•  Mailing List: heapstats@icedtea.classpath.org
http://icedtea.classpath.org/mailman/listinfo/heapstats	
  
•  Repository:
hg	
  clone	
  http://icedtea.classpath/hg/heapstats	
  
•  Exhibition: 5013
40

More Related Content

What's hot

Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUs
Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUsScaling out Tensorflow-as-a-Service on Spark and Commodity GPUs
Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUsJim Dowling
 
Track Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 TriggerTrack Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 TriggerTimothy Head
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Jorisimec.archive
 
Scaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraScaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraJim Dowling
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMMarcus Hirt
 
Odsc workshop - Distributed Tensorflow on Hops
Odsc workshop - Distributed Tensorflow on HopsOdsc workshop - Distributed Tensorflow on Hops
Odsc workshop - Distributed Tensorflow on HopsJim Dowling
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Shinya Takamaeda-Y
 
Debugging node in prod
Debugging node in prodDebugging node in prod
Debugging node in prodYunong Xiao
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14Juan Fumero
 
Profiling deep learning network using NVIDIA nsight systems
Profiling deep learning network using NVIDIA nsight systemsProfiling deep learning network using NVIDIA nsight systems
Profiling deep learning network using NVIDIA nsight systemsJack (Jaegeun) Han
 
Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Chris Fregly
 
한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32HANCOM MDS
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaJuan Fumero
 
Profiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & SustainabilityProfiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & Sustainabilitygeetachauhan
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsXiaozhe Wang
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesJeff Larkin
 
GPUs for GEC Competition @ GECCO-2013
GPUs for GEC Competition @ GECCO-2013GPUs for GEC Competition @ GECCO-2013
GPUs for GEC Competition @ GECCO-2013Daniele Loiacono
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudAndrea Righi
 
GPUIterator: Bridging the Gap between Chapel and GPU Platforms
GPUIterator: Bridging the Gap between Chapel and GPU PlatformsGPUIterator: Bridging the Gap between Chapel and GPU Platforms
GPUIterator: Bridging the Gap between Chapel and GPU PlatformsAkihiro Hayashi
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet FiltersKernel TLV
 

What's hot (20)

Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUs
Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUsScaling out Tensorflow-as-a-Service on Spark and Commodity GPUs
Scaling out Tensorflow-as-a-Service on Spark and Commodity GPUs
 
Track Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 TriggerTrack Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 Trigger
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
 
Scaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraScaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa Clara
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVM
 
Odsc workshop - Distributed Tensorflow on Hops
Odsc workshop - Distributed Tensorflow on HopsOdsc workshop - Distributed Tensorflow on Hops
Odsc workshop - Distributed Tensorflow on Hops
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
Debugging node in prod
Debugging node in prodDebugging node in prod
Debugging node in prod
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14
 
Profiling deep learning network using NVIDIA nsight systems
Profiling deep learning network using NVIDIA nsight systemsProfiling deep learning network using NVIDIA nsight systems
Profiling deep learning network using NVIDIA nsight systems
 
Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016
 
한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
 
Profiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & SustainabilityProfiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & Sustainability
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best Practices
 
GPUs for GEC Competition @ GECCO-2013
GPUs for GEC Competition @ GECCO-2013GPUs for GEC Competition @ GECCO-2013
GPUs for GEC Competition @ GECCO-2013
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloud
 
GPUIterator: Bridging the Gap between Chapel and GPU Platforms
GPUIterator: Bridging the Gap between Chapel and GPU PlatformsGPUIterator: Bridging the Gap between Chapel and GPU Platforms
GPUIterator: Bridging the Gap between Chapel and GPU Platforms
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet Filters
 

Viewers also liked

JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpYuji Kubota
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualYuji Kubota
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasualYuji Kubota
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javaYuji Kubota
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccConcurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccYuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Yuji Kubota
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugYuji Kubota
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugYuji Kubota
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjugYuji Kubota
 

Viewers also liked (10)

JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasual
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccConcurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
 

Similar to HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring Tool #JavaOne2014

NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...VirtualTech Japan Inc.
 
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...gree_tech
 
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...Akihiro Suda
 
Flaky tests and bugs in Apache software (e.g. Hadoop)
Flaky tests and bugs in Apache software (e.g. Hadoop)Flaky tests and bugs in Apache software (e.g. Hadoop)
Flaky tests and bugs in Apache software (e.g. Hadoop)Akihiro Suda
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the CoreC4Media
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...The Linux Foundation
 
"Quantum" Performance Effects
"Quantum" Performance Effects"Quantum" Performance Effects
"Quantum" Performance EffectsSergey Kuksenko
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Thomas Wuerthinger
 
Tajo_Meetup_20141120
Tajo_Meetup_20141120Tajo_Meetup_20141120
Tajo_Meetup_20141120Hyoungjun Kim
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18Xiaoli Liang
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevillaTrisha Gee
 
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
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-finalshintaro mizuno
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Monica Beckwith
 
Introduction to ZooKeeper - TriHUG May 22, 2012
Introduction to ZooKeeper - TriHUG May 22, 2012Introduction to ZooKeeper - TriHUG May 22, 2012
Introduction to ZooKeeper - TriHUG May 22, 2012mumrah
 
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Alexandre (Shura) Iline
 
DAIS19: On the Performance of ARM TrustZone
DAIS19: On the Performance of ARM TrustZoneDAIS19: On the Performance of ARM TrustZone
DAIS19: On the Performance of ARM TrustZoneLEGATO project
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoKota Tsuyuzaki
 
Coverage Solutions on Emulators
Coverage Solutions on EmulatorsCoverage Solutions on Emulators
Coverage Solutions on EmulatorsDVClub
 

Similar to HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring Tool #JavaOne2014 (20)

NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
 
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
 
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
 
Flaky tests and bugs in Apache software (e.g. Hadoop)
Flaky tests and bugs in Apache software (e.g. Hadoop)Flaky tests and bugs in Apache software (e.g. Hadoop)
Flaky tests and bugs in Apache software (e.g. Hadoop)
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
 
"Quantum" Performance Effects
"Quantum" Performance Effects"Quantum" Performance Effects
"Quantum" Performance Effects
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
 
Tajo_Meetup_20141120
Tajo_Meetup_20141120Tajo_Meetup_20141120
Tajo_Meetup_20141120
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevilla
 
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
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
 
Introduction to ZooKeeper - TriHUG May 22, 2012
Introduction to ZooKeeper - TriHUG May 22, 2012Introduction to ZooKeeper - TriHUG May 22, 2012
Introduction to ZooKeeper - TriHUG May 22, 2012
 
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.
 
DAIS19: On the Performance of ARM TrustZone
DAIS19: On the Performance of ARM TrustZoneDAIS19: On the Performance of ARM TrustZone
DAIS19: On the Performance of ARM TrustZone
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit Juno
 
Coverage Solutions on Emulators
Coverage Solutions on EmulatorsCoverage Solutions on Emulators
Coverage Solutions on Emulators
 

More from Yuji Kubota

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Yuji Kubota
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識Yuji Kubota
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugYuji Kubota
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Yuji Kubota
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugYuji Kubota
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugYuji Kubota
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Yuji Kubota
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjavaYuji Kubota
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Yuji Kubota
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTYuji Kubota
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGYuji Kubota
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajoYuji Kubota
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjugYuji Kubota
 
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
29 Tips in 40 Minitues for GlassFish Fans #glassfishjpYuji Kubota
 

More from Yuji Kubota (20)

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjug
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjava
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
 
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring Tool #JavaOne2014

  • 1. Troubleshooting with Serviceability and the New Runtime Monitoring Tool: HeapStats JavaOne 2014 BOF3018 Yuji KUBOTA (@sugarlife) / Shinji TAKAO Nippon Telegraph and Telephone Corp.
  • 2.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Questions and comments  #heapstats Questions on twitter are appreciated! We will response correctly than via hearing-loss :)
  • 3.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   What will we talk about? 2 Troubleshooting of Java systems especially : •  in operating phase •  using free / open source tools for OracleJDK and OpenJDK on Linux for x86 (32/64)
  • 4.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Who are we? • Yuji Kubota (hearing impaired, @sugarlife) Shinji Takao (me) • IcedTea committers • OpenJDK technical support engineers at Nippon Telegraph and Telephone Corp. (NTT) Open Source Software Center (OSSC) , Tokyo, Japan 3
  • 5.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   • The OSSC provides a technical advice for NTT group’s companies, handled 11,735 inquiries since 2006 • We handled 404 Java related inquiries including 259 Java system trouble shooting advice request since 2008 Our history with OpenJDK 4 Development teams OSSC (We are) Operational teams Question Question Answer Answer NTT Group
  • 6.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Topics •  Troubleshooting •  Categorizing •  Problems of current trouble shootings •  HeapStats •  Design for “Good” troubleshooting tool •  Demonstration with use-cases 5
  • 7.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Troubleshooting 6
  • 8.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Shortage of Native Resources 9.7% Heap/Perm/GC 31.3% API 20.1% Performance/stall 6.9% Crash 19.3% Other 12.7% TOTAL 285 Troubles we faced 7
  • 9.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Shortage of Native Resources 9.7% Heap/Perm/GC 31.3% API 20.1% Performance/stall 6.9% Crash 19.3% Other 12.7% TOTAL 285 Troubles we faced 8 Memory / Resource related troubles account for 41% of all
  • 10.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Case study : heap related • Initial diagnosis • The amount of user access was not increased • GC worked fine and a sudden OOM had happened • Set class histogram with OnOutOfMemory option • Several months later, the OOME was reproduced 9
  • 11.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Case study : heap related • Located the suspect class, but the operation team requested more concreate evidence • Set HeapDumpOnOutOfMemory and waited another OOME • Data elicited from the heapdump indicate that a database query for all of the data in a table at a time made the result eat up the heap 10
  • 12.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Shortcomings of the current way •  Collect Information : insufficient •  No suitable logging : Performance vs information-richness •  Presentation : inefficient •  Settings about logging : complicated 11
  • 13.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   OK, so, what do I have to do? 12
  • 14.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   13
  • 15.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   •  Open source Java tooling project in IcedTea community that aimed to better monitoring and after-the-fact analysis. •  This project provides a lightweight JVMTI agent which attaches HotSpot VM to collect clues, and a GUI analyzer. 14
  • 16.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   What is “Good” troubleshooting tool? #1 Collect required information. #2 Lightweight. #3 Visualization. #4 Ease of use. 15
  • 17.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   #1 Collect required information. Avoid the lack of information to troubleshoot even if a java expert is not assigned. 16
  • 18.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Trade off Lightweight Heavy Detailed Summary Class  Histogram   HeapDump   ThreadDump CoreDump   (gcore) hprof gdb  /  jdb No impact but short. Need to collect continuously. Useful but big impact as FullGC. JVM may down. Do NOT try at production.Process     Resources   (e.g.  cpu)   GC  Log   Application  Log 17 jconsole   JMX   JVMTI   #IterateOverHeap()   #FollowReferences()
  • 19.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Our strategy •  Continuously collected resource data during JVM alives. •  Process resources (OS / JVM). •  Heap and GC statistics. •  Detailed dump with stop-the-world when JVM will die or face troubles. •  Heap snapshots, Thread dump •  Other os log (syslog / journald, etc) 18
  • 20.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   #2 Lightweight. Do not stop your application. 19
  • 21.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   HeapStats collect data per Major GC. •  HeapStats agent hooks the marking or sweep phases of the garbage collector to collect java runtime information by oop (ordinary object pointer) without extra stop the world. 20
  • 22.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   GC process of HotSpot VM Thread  stack Object  monitor JNI  Reference GC  Root 21 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Sweep Live  object Mark
  • 23.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   How to hook the marking 22 ✔ Object virtual  calculateSize()     :   JVM  internal  (C++) Java  Object virtual  marking() Class  Object virtual  marking() Primitive  Object virtual  marking() vtable marking virtual  marking()   Insert     to  collect override_marking(AMD64):          push  [register  for  argument]          mov    [argument]  [register]          call  [collect  information]          pop    [register  for  argument]          jmp    XXObject::marking Marking Save  the  stack  and     register  for  resume     the  GC  process.
  • 24.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Additional optimization •  Refactor the assembly of the override JVM inner functions to using SSE4 / AVX instruction sets. #ifdef  AVX      #define  CHECK_VTABLE(oop_reg,  valid_caller)                vmovd  (oop_reg),  %xmm0;                                        vpshufd  $0,  %xmm0,  %xmm1;                         mov  valid_caller##@GOT(%ebx),  %ecx;     vmovq  (%ecx),  %xmm1;                                   vpcmpeqd  %xmm0,  %xmm1,  %xmm1;                            vptest  %xmm1,  %xmm1;   #elif  defined  SSE4_1      #define  CHECK_VTABLE(oop_reg,  valid_caller)                movd  (oop_reg),  %xmm0;                                          pshufd  $0,  %xmm0,  %xmm1;                                      mov  valid_caller##@GOT(%ebx),  %ecx;                movq  (%ecx),  %xmm1;                                                pcmpeqd  %xmm0,  %xmm1;                                            ptest  %xmm1,  %xmm1;   Ex:  Check  vtable  to  hook 23
  • 25.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Result 282.68   269.92   0   50   100   150   200   250   300   Without  HeapStats   With  HeapStats   4.51 % Overhead  rate (ops/m) SPECjvm2008 Composite Result Measurement conditions Benchmark tool: SPECjvm2008 1.01 Machine: DELL PowerEdge R810 (Xeon X7542, 32 GB memory) OS: Red Hat Enterprise Linux Server 6.3 x86_64 Java: java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.x86_64 Java execution options: -Xms4500m –Xmx4500m –XX:+UseG1GC –agentpath: <agent library>
  • 26.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   #3 Visualization. We do not need to hunt for treasure from noisy and huge log. 25
  • 27.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   HeapStats analyzer •  HeapStats provides analyzer to show… •  Process Resources (OS / JVM) •  GC and Heap / Metaspace •  Class Histogram •  Timeline and Summary •  Object reference Overview Detailed 26
  • 28.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Process Resources (OS / JVM) 27
  • 29.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   GC and Heap / Metaspace 28
  • 30.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Class Histogram (timeline) 29
  • 31.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Class Histogram (summary) 30
  • 32.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Object Reference 31
  • 33.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   #4 Ease of use. Keep it simple, stupid 32
  • 34.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Ease of use. •  You need only 2 steps to start then, HeapStats go live! rpm ‒ivh heapstats*rpm java ‒agentlib:heapstats YourApp 33 Add  this  JVM  option
  • 35.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Overview of HeapStats’ behavior Java application execution server Operations monitoring tool HotSpot VM     Java application save logs at current directory (default) Real-time detection and alert by SNMP trap Collect data with Low OH Agent Visualization PC for Analysis Analyzer
  • 36.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Requirement(s) •  HotSpot JVM •  IcedTea, OpenJDK, OracleJDK •  JDK 6 and later. •  Debug symbol (e.g. debuginfo) •  Linux x86 or AMD64 35
  • 37.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Troubleshoot with HeapStats 36 Demonstration
  • 38.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   One fine day •  Customer 「Please teach us why our application got Out of Memory. 」 •  We must answer… •  What happen?: leak or shortage or… •  If leak happened, what object is the cause and how to solve it. •  Let’s try troubleshoot with HeapStats. 37
  • 39.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Demonstration 38
  • 40.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Future Work •  Collect thread statistic as GC/Heap. •  More simple to install by yum/apt. •  More rich interface of analyzer. •  Remake analyzer by JavaFX. •  Adapt JDK9 and new pause less GC “Shenandoah”. (in review) 39
  • 41.  Copyright(c)2014  NTT  Corp.  All  Rights  Reserved.   Join us! •  HeapStats: http://icedtea.classpath.org/wiki/HeapStats   •  Mailing List: heapstats@icedtea.classpath.org http://icedtea.classpath.org/mailman/listinfo/heapstats   •  Repository: hg  clone  http://icedtea.classpath/hg/heapstats   •  Exhibition: 5013 40