Java performance for Jazz Using publicly available tools to analyze the behaviour of running CLM installation
Topics Tools GC log analysis Thread analysis from javacore files Heap analysis
Tools GC log analyzer https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e- 634b51838e11 WAIT http://snappy.watson.ibm.com/wait/ Thread dump (javacore) analyzer https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891- 14c205f7333c Heap Analyzer (phd files) https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091
GC Overhead as key performance indicator GC Analysis Introduce the hursley logs Demonstrate that even after tuning we still see pauses GC Overhead as key performance indicator GC Overhead should stay below 5% if possible Extended periods over 10% are bad Here it’s obvious that the heap is quickly exhausted and cannot recover
WAIT Combines info including memory and thread activity http://snappy.watson.ibm.com/MyReports/agfitzp@ca.ibm.com/50/index.htmz# Combines info including memory and thread activity
Thread dumps show exactly what the JVM is doing Thread Analysis Introduce the hursley logs Demonstrate that even after tuning we still see pauses Thread dumps show exactly what the JVM is doing Which threads are doing what Who is waiting for whom Can be combined with other data from WAIT (more later...)
Shows us what Java objects are in Memory Heap Analysis Introduce the hursley logs Demonstrate that even after tuning we still see pauses Shows us what Java objects are in Memory Which threads are doing what Who is waiting for whom Can be combined with other data from WAIT (more later...)
GC Deepdive
GC Exercises