Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Java Performance Tuning with Free Tools

Java Performance Tuning with Free Tools

This is a talk I gave at JavaONE 2017 and NetBean's Day in which I presented some free tooling that can be used to diagnose performance regressions in production.applications

Kirk Pepperdine

October 09, 2017
Tweet

More Decks by Kirk Pepperdine

Other Decks in Programming

Transcript

  1. Copyright 2017 Kirk Pepperdine jClarity ▸ Author of jPDM, a

    performance diagnostic model ▸ Bring predictability into the diagnostic process ▸ Co-founded jClarity ▸ Building the smart generation of performance diagnostic tooling ▸ Co-founded JCrete ▸ The hotest unconference on the planet ▸ Java Champion (2006)
  2. Copyright 2017 Kirk Pepperdine jClarity ▸Body Level One ▸ Body

    Level Two ▸ Body Level Three ▸ Body Level Four ▸ Body Level Five www.kodewerk.com Java Performance Tuning Workshop The original
  3. Copyright 2017 Kirk Pepperdine jClarity ▸jPDM defines 4 major sub-systems

    ▸ Abstraction of all the “things” in our real system ▸Create a taxonomy to categorize performance regressions ▸ Different problems result in different signals being produced by the system ▸ Pattern matching on the different signals helps us identify the underlying root cause ▸ Helps us identify a tool chain JAVA PERFORMANCE DIAGNOSTIC MODEL Application Application logic OS (Hardware) CPU, memory, network, disk, locks, video JVM JVM code and configuration Actors Usage Patterns
  4. Copyright 2017 Kirk Pepperdine jClarity ▸Identify the Dominating Consumer of

    the CPU ▸ That action or interaction that controls how the CPU is being consumed ▸ Can CPU be pushed to 100% utilization ▸Yes - Aggressive dominance ▸No - Passive dominance DOMINATING CONSUMER Application Application logic OS (Hardware) CPU, memory, network, disk, locks, video JVM JVM code and configuration Actors Usage Patterns
  5. Copyright 2017 Kirk Pepperdine jClarity jPDM FLOW CHART sys cpu

    > 10% of user cpu idle > 0% memory efficient? GC Logs Application JVM None (liveliness) System vmstat, netstat, mpstat, iostat, nicstat, perf, sar, strace, tcpdump Thread liveliness Thread cardinality app/CPU profiling GC tuning, pool sizes, collectors, ... Memory profiling, size frequency, life span,... yes no yes no no yes Users Realizing SLA no Yes Go Home
  6. Copyright 2017 Kirk Pepperdine ▸May lead you to unexpected places

    ▸Do know they all come with biases ▸ Combining jPDM helps you to not be fooled by biases FOLLOW YOUR TOOLS jClarity