Transcript
Page 1: Hands-on Performance Workshop - The science of performance

The science of performance

Mike Croft

Hands-on Performance Workshop

Page 2: Hands-on Performance Workshop - The science of performance

Who Am I?

• C2B2 Expert Support consultant

• Ex-IBM

• Snowboarder

• @croft

Page 3: Hands-on Performance Workshop - The science of performance

Who are you?

Page 4: Hands-on Performance Workshop - The science of performance

Why are we here?

• Hands-on performance!– Hands on what?

• See what tools are available• Get experience of using some tools• Learn how to apply knowledge

• Why do you want to be here?

Page 5: Hands-on Performance Workshop - The science of performance

Agenda

• Introduction• Environment setup• Performance Overview• Collecting Data– Presentation– Practical

• How do we interpret the data?– Tools

• Example app analysis

Page 6: Hands-on Performance Workshop - The science of performance

Hands-on Performance WorkshopEnvironment Setup

Page 7: Hands-on Performance Workshop - The science of performance

Environment Setup

• Download Instructions and follow the first part

https://s3-eu-west-1.amazonaws.com/jaxlondon2014/instructions.docx

• Make sure all necessary resources are downloaded• Make sure the app is deployed and JMeter can run

load through it

Page 8: Hands-on Performance Workshop - The science of performance

Hands-on Performance WorkshopPerformance Overview

Page 9: Hands-on Performance Workshop - The science of performance

Performance Overview

Page 10: Hands-on Performance Workshop - The science of performance

Performance Overview

Performance Factors

• Raw Algorithmic Performance• Resource Limitations– Not enough cpu, disk, memory

• Resource Contention– Locks

• IO Latency– Network, Disk

Page 11: Hands-on Performance Workshop - The science of performance

Performance Overview

Latency Factors

• Network Distance• Network Reliability• Data Size• Operation Granularity• Resource Contention• JVM GC

Page 12: Hands-on Performance Workshop - The science of performance

Performance Overview

Page 13: Hands-on Performance Workshop - The science of performance

Performance Overview

Page 14: Hands-on Performance Workshop - The science of performance

Hands-on Performance WorkshopCollecting Data

Page 15: Hands-on Performance Workshop - The science of performance

Collecting Data

• Garbage Collection• Verbose GC• Heap size– New size and old size– Before collection– After collection

• Pause time

Page 16: Hands-on Performance Workshop - The science of performance

Collecting Data

• Thread dumps– Kill -3– JStack

• Thread state– Wait– Sleep– Blocked– Running

• Full stack trace

Page 17: Hands-on Performance Workshop - The science of performance

Collecting Data

• Heap dumps• Entire contents of the heap– Very Large!– Can take time to collect on large

heaps

• Can auto-dump on OOME

Page 18: Hands-on Performance Workshop - The science of performance

Hands-on Performance WorkshopInterpreting Data

Page 19: Hands-on Performance Workshop - The science of performance

Interpreting Data

• Tools– Live monitoring

• VisualVM• MissionControl• JMX

– Historical analysis• Memory Analyzer Tool• Flight Recorder (commercial)• Threadlogic• GCViewer