performance free tools - RainFocus · Author of jPDM, a performance diagnostic model Bring...

17
Copyright 2017 Kirk Pepperdine WITH FREE TOOLS JAVA PERFORMANCE TUNING

Transcript of performance free tools - RainFocus · Author of jPDM, a performance diagnostic model Bring...

Copyright 2017 Kirk Pepperdine

WITH FREE TOOLSJAVA PERFORMANCE TUNING

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)

Copyright 2017 Kirk Pepperdine

jClarity

▸Body Level One

▸ Body Level Two

▸ Body Level Three

▸ Body Level Four

▸ Body Level Five

www.kodewerk.com

Java P

erform

ance T

uning

Worksho

p

The original

Copyright 2017 Kirk Pepperdine

jClarity

PERFORMANCE TUNING WITH FREE TOOLS

So where are the free tools?

Copyright 2017 Kirk Pepperdine

jClarity

THE ULTIMATE FREE TOOL

Copyright 2017 Kirk Pepperdine

jClarity

THE TYPICAL FREE TOOL

What could be wrong?

Copyright 2017 Kirk Pepperdine

jClarity

THE TYPICAL THOUGHT

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

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

Copyright 2017 Kirk Pepperdine

jClarity

jPDM FLOW CHART

sys cpu > 10% ofuser cpu

idle > 0% memory efficient?GC Logs

Application

JVMNone (liveliness)

System

vmstat, netstat, mpstat, iostat, nicstat, perf, sar, strace, tcpdump

Thread livelinessThread cardinality

app/CPU profilingGC tuning, pool sizes,collectors, ...

Memory profiling, sizefrequency, life span,...

yes

no yes

no

no

yes

Users Realizing SLAno

Yes

Go Home

Copyright 2017 Kirk Pepperdine

jClarity

FREE TOOLING???

Copyright 2017 Kirk Pepperdine

jClarity

FREE TOOLING???

I’ve got your back

Copyright 2017 Kirk Pepperdine

jClarity

▸ jps

▸ jinfo

▸ jstat

▸ jmap

▸ jstack

▸ jcmd

▸ jstatd

COMMAND LINE TOOLING

Copyright 2017 Kirk Pepperdine

jClarity

▸ jConsole

▸VisualVM

▸ JMC/JFR

▸TDA

VISUAL TOOLING

Copyright 2017 Kirk Pepperdine

Demo

jClarity

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

Copyright 2017 Kirk Pepperdine

Questions?

jClarity