SlideShare a Scribd company logo
Copyright 2015 Kodewerk Ltd. All rights reserved
The (not so) Dark Art of
Performance Tuning
From Newts to Newton
Copyright 2015 Kodewerk Ltd. All rights reserved
Java Performance Tuning Workshops
About Me
Co-Founded jClarity
Co-Founded www.javaperformancetuning.com
Kodewerk Ltd Performance Consulting
Copyright 2015 Kodewerk Ltd. All rights reserved
Disclaimer
The resemblance of any opinion,
recommendation

or comment made during this presentation to
actual performance tuning advice

is merely coincidental.
Copyright 2015 Kodewerk Ltd. All rights reserved
Our Typical Customer
Application isn’t performing to project sponsors expectations

users can wait for minutes for simply queries to complete

Development team has been tuning for weeks

no real improvement︙.
Copyright 2015 Kodewerk Ltd. All rights reserved
Finger Pointing
Different team experts come to the table with different opinions

I see StringBuffer is being used all over, lets change it to StringBuilder

I think our DBMS is the problem, we need to migrate to [buzzword goes here]

DBA claimed transactions are clearing very quickly

Networking claims normal levels of saturation

Server admin claims I/O channels are all ok but CPU is running hot

no rouge applications are running along side application

JEE Admin claims server is configured as it should be
Copyright 2015 Kodewerk Ltd. All rights reserved
Project is canceled!!!!
Copyright 2015 Kodewerk Ltd. All rights reserved
Where is the problem?
Copyright 2015 Kodewerk Ltd. All rights reserved
Measure Don’t Guess®
Copyright 2015 Kodewerk Ltd. All rights reserved
Software is Abstract
public class Software {

public static void main( String[] args) {

System.out.println(“Software is abstract”);

}

}
Copyright 2015 Kodewerk Ltd. All rights reserved
Hardware is Real!
Copyright 2015 Kodewerk Ltd. All rights reserved
Physical Limits
CPU capacity

throughput : clock speed

granularity: cache line

Memory

capacity : volume

Bus

throughput : clock speed

width : 32 bits
Copyright 2015 Kodewerk Ltd. All rights reserved
Limits of Hardware
disk

~1 Bbit/sec (SATA ~3Gbits/sec)

granularity: disk sector (512 bytes)

Network

frame buffer/packet

frequency (clock)
Copyright 2015 Kodewerk Ltd. All rights reserved
Other Limits
other hardware devices

video/sound

heat

battery

time
Copyright 2015 Kodewerk Ltd. All rights reserved
public class Software {

public static void main( String[] args) {

System.out.println(“Software is abstract”);

}

}
Copyright 2015 Kodewerk Ltd. All rights reserved
Application
Developers Live Here
business logic,

non-shareable soft resources
Copyright 2015 Kodewerk Ltd. All rights reserved
Copyright 2015 Kodewerk Ltd. All rights reserved
Question?
Which is faster?
a) Bubble sort

b) Quick sort
In Big O notation...

- Bubble sort is N^2 

- Quick sort of Nlog(N)
Copyright 2015 Kodewerk Ltd. All rights reserved
However!
bubble
quick
Copyright 2015 Kodewerk Ltd. All rights reserved
Performance Tuning
The space can be humongous

you can’t traverse it all

assume something is or isn’t part of the problem
Copyright 2015 Kodewerk Ltd. All rights reserved
Believe it or not
If youombine

The source of the problem can be reasoned if you combine;

the facts presented

some understanding of how the OS/Hardware function

an understanding of the JEE specification
Copyright 2015 Kodewerk Ltd. All rights reserved
Performance Tuning Methodology
If youombine

Prefer hypothesis free investigation

be methodical

step wise process to arrive at a conclusion

Drive the process using a Performance Diagnostic Model
Copyright 2015 Kodewerk Ltd. All rights reserved
Application
Developers Live Here
dynamicsalgorithmic strength
Copyright 2015 Kodewerk Ltd. All rights reserved
OS/Hardware
JVM
Application
Applications Live Here
CPU, memory, disk I/O

network I/O, Locks
manage memory, execution
dynamics
algorithmic strength
Copyright 2015 Kodewerk Ltd. All rights reserved
OS/Hardware
JVM
Application
Actors Add Dynamics
CPU, memory, disk I/O

network I/O, Locks
manage memory, execution
Actors
usage patterns
algorithmic strength
Copyright 2015 Kodewerk Ltd. All rights reserved
OS/Hardware
JVM
Application
Actors
Hardware Consumption
CPU, memory, disk I/O

network I/O. Locks
manage memory, execution
usage patterns
Actors drives application
Application drives JVM
JVM drives OS/Hardware
Hardware is consumed
function of how actors interact with system
function of how application is coded
consumption cannot exceed capacity

pattern of consumption is important
algorithmic strength
Copyright 2015 Kodewerk Ltd. All rights reserved
OS/Hardware
JVM
Application
Actors
Dominating Consumer
CPU, memory, disk I/O

network I/O. Locks
manage memory, execution
usage patterns
algorithmic strength
Activity that dominates
how the CPU is utilized
Determine by analyizing
breakout of CPU
counters
garbage collection logs
Copyright 2015 Kodewerk Ltd. All rights reserved
Dominating Consumer Choices
OS/Hardware
Application
Actors
CPU, memory, disk I/O

network I/O, Locks
manage memory, execution
algorithmic strength
usage patterns
Application
JVM
None
System
JVM
Copyright 2015 Kodewerk Ltd. All rights reserved
Dominating Consumer Conditions
sys cpu > 10% of

user cpu
user CPU ~= 100% memory efficient?

GC Logs
Application
JVMNone
System
system profiling: netstat, mpstat,

iostat, sar, strace, etc...
Thread starvation

Thread dump
app/CPU profiling
GC tuning, pool sizes,

collectors, ...
Memory profiling, size

frequency, life span,...
yes
yes yes
no
no
no
Copyright 2015 Kodewerk Ltd. All rights reserved
Expression of Consumption
Application
JVMNone
System
passively
dominant
aggressivly
dominant
Copyright 2015 Kodewerk Ltd. All rights reserved
Measuing Consumption
Application
JVMNone
System
Kernel time
Idle User time
Copyright 2015 Kodewerk Ltd. All rights reserved
r b swpd free buff cache si so bi bo in cs us sy id wa !
3 9 100 24496 11096 13267036 0 0 0 5 0 1 2 1 96 1!
3 2 100 23420 11088 13268328 0 0 0 0 77330 175352 17 26 39 17!
3 9 100 20836 11088 13270628 0 0 0 68 105118 227382 14 40 21 25!
8 4 100 23356 11080 13268272 0 0 0 0 80062 164387 12 30 29 30!
7 7 100 23180 11084 13267068 0 0 0 72 98353 234851 15 43 28 15!
11 2 100 25820 11088 13263676 0 0 0 120 100749 214921 11 42 17 30!
13 1 100 22316 11088 13267176 0 0 0 0 103878 246723 16 56 19 9 !
4 3 100 21824 11088 13269140 0 0 0 0 48625 97288 15 16 9 60!
11 2 100 20932 11080 13269808 0 0 0 0 110760 236774 14 41 24 20!
1 12 100 23624 11084 13267488 0 0 0 204 69117 148611 15 27 25 33!
7 5 100 24996 11096 13267476 0 0 0 164 24495 48552 13 10 30 48!
1 12 100 20792 11096 13271872 0 0 0 0 25659 54331 8 9 26 56!
6 8 100 21984 11080 13269920 0 0 0 20 46309 101404 16 18 51 15!
4 9 100 22764 11080 13268956 0 0 16 0 88553 229557 17 35 38 11
Copyright 2015 Kodewerk Ltd. All rights reserved
Performance benchmarking
Copyright 2015 Kodewerk Ltd. All rights reserved
Actors
Test harness
Application
JVM
Hardware/OS
Data
Monitoring
Things we need
Copyright 2015 Kodewerk Ltd. All rights reserved
Process
Benchmark benchmark = new Benchmark()

benchmark.configure();

performance = benchmark.baseline(application);

user.setHappy(performance.meets(requirements));

while (( ! user.isHappy()) && (user.hasMoney())) {

Profiler profiler = performance.identifyDominatingConsumer();

profilingResults = benchmark.profile(profiler);

application.fixUsing( profilingResults);

while ( application.failsQA())

application.debug();

performance = benchmark.baseline(application);

user.setHappy(performance.meets(requirements));

}
Copyright 2015 Kodewerk Ltd. All rights reserved
Time for a demo
Copyright 2015 Kodewerk Ltd. All rights reserved
Dominating Consumer Demo
sys cpu > 10% of

user cpu
System
system profiling: netstat, mpstat,

iostat, sar, strace, etc...
yes
Question?

Why the high level of kernel CPU?

Observations

no disk I/O, network activity or video

context switching due to lock contention?

Monitor threads with VisualVM
Copyright 2015 Kodewerk Ltd. All rights reserved
Dominating Consumer Conditions
sys cpu > 10% of

user cpu
user CPU ~= 100%
memory efficient?

GC Logs
JVM
Memory profiling, size

frequency, life span,...
yes
no
no
Question?

Why the high memory consumption

Profile object creation
Copyright 2015 Kodewerk Ltd. All rights reserved
What about our Customer?
Need to gather clear requirements

Develop a sound benchmarking environment

get better measurements

Always identify dominating consumer

refocus teams on problems that matter
Copyright 2015 Kodewerk Ltd. All rights reserved
Questions?

More Related Content

Viewers also liked

Curso de Sabão -NEEJA
Curso de Sabão -NEEJACurso de Sabão -NEEJA
Curso de Sabão -NEEJAblogneejacxs
 
Tecnología educativa 1
Tecnología educativa 1Tecnología educativa 1
Tecnología educativa 1
COMIL. "ELOY ALFARO"
 
Loureiro
LoureiroLoureiro
Loureiro
soparablogger
 
Converges in business powerpoint presentation plan circular spoke diagram slides
Converges in business powerpoint presentation plan circular spoke diagram slidesConverges in business powerpoint presentation plan circular spoke diagram slides
Converges in business powerpoint presentation plan circular spoke diagram slides
SlideTeam.net
 
Applied stratigic leadr
Applied stratigic leadrApplied stratigic leadr
Applied stratigic leadr
Tony Taylor
 
Internet segura
Internet seguraInternet segura
Internet segura
soparablogger
 
Tecnología educativa 1
Tecnología educativa 1Tecnología educativa 1
Tecnología educativa 1
COMIL. "ELOY ALFARO"
 
インターンシップ
インターンシップ インターンシップ
インターンシップ Mai-Mizorogi
 
Marathi Asmita Dr Shriniwas Kashalikar
Marathi Asmita Dr Shriniwas KashalikarMarathi Asmita Dr Shriniwas Kashalikar
Marathi Asmita Dr Shriniwas Kashalikar
banothkishan
 
Trabajo 10
Trabajo 10Trabajo 10
Trabajo 10
johanna vizuete
 
L'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
L'influenza del buzz nel processo di acquisto - Cetti Galante, NielsenL'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
L'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
Osservatorio Multicanalità
 
Edital n __1_serpro_2013_v_final
Edital n __1_serpro_2013_v_finalEdital n __1_serpro_2013_v_final
Edital n __1_serpro_2013_v_final
Eveline Montenegro
 
No Al Alcohol! Vero.Pennacno
No Al Alcohol! Vero.PennacnoNo Al Alcohol! Vero.Pennacno
No Al Alcohol! Vero.Pennacno
veroop
 
Ontologia w informatyce, ontology
Ontologia w informatyce, ontologyOntologia w informatyce, ontology
Ontologia w informatyce, ontology
EwaB
 
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieciMyśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
EwaB
 
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
Fondazione Giovanni Agnelli
 
How To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
How To Use H.R. Processes to Avoid the Peter Principle - Bad PromotionsHow To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
How To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
Equilibria, Inc.
 
Schematy rozgrywek
Schematy rozgrywekSchematy rozgrywek
Schematy rozgrywek
Marcin Blacha
 
SSB BART Group Mobile Accessibility
SSB  BART Group Mobile AccessibilitySSB  BART Group Mobile Accessibility
SSB BART Group Mobile Accessibility
Eduardo Meza-Etienne
 
WhatsApp security
WhatsApp securityWhatsApp security
WhatsApp security
Javi Hurtado
 

Viewers also liked (20)

Curso de Sabão -NEEJA
Curso de Sabão -NEEJACurso de Sabão -NEEJA
Curso de Sabão -NEEJA
 
Tecnología educativa 1
Tecnología educativa 1Tecnología educativa 1
Tecnología educativa 1
 
Loureiro
LoureiroLoureiro
Loureiro
 
Converges in business powerpoint presentation plan circular spoke diagram slides
Converges in business powerpoint presentation plan circular spoke diagram slidesConverges in business powerpoint presentation plan circular spoke diagram slides
Converges in business powerpoint presentation plan circular spoke diagram slides
 
Applied stratigic leadr
Applied stratigic leadrApplied stratigic leadr
Applied stratigic leadr
 
Internet segura
Internet seguraInternet segura
Internet segura
 
Tecnología educativa 1
Tecnología educativa 1Tecnología educativa 1
Tecnología educativa 1
 
インターンシップ
インターンシップ インターンシップ
インターンシップ
 
Marathi Asmita Dr Shriniwas Kashalikar
Marathi Asmita Dr Shriniwas KashalikarMarathi Asmita Dr Shriniwas Kashalikar
Marathi Asmita Dr Shriniwas Kashalikar
 
Trabajo 10
Trabajo 10Trabajo 10
Trabajo 10
 
L'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
L'influenza del buzz nel processo di acquisto - Cetti Galante, NielsenL'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
L'influenza del buzz nel processo di acquisto - Cetti Galante, Nielsen
 
Edital n __1_serpro_2013_v_final
Edital n __1_serpro_2013_v_finalEdital n __1_serpro_2013_v_final
Edital n __1_serpro_2013_v_final
 
No Al Alcohol! Vero.Pennacno
No Al Alcohol! Vero.PennacnoNo Al Alcohol! Vero.Pennacno
No Al Alcohol! Vero.Pennacno
 
Ontologia w informatyce, ontology
Ontologia w informatyce, ontologyOntologia w informatyce, ontology
Ontologia w informatyce, ontology
 
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieciMyśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
Myśliwskie pogwarki, Kobryńczuk, Jedliński, Białek - wiersze dla dzieci
 
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
la scuola italiana: quanto siamo lontani dai Paesi più avanzati?
 
How To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
How To Use H.R. Processes to Avoid the Peter Principle - Bad PromotionsHow To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
How To Use H.R. Processes to Avoid the Peter Principle - Bad Promotions
 
Schematy rozgrywek
Schematy rozgrywekSchematy rozgrywek
Schematy rozgrywek
 
SSB BART Group Mobile Accessibility
SSB  BART Group Mobile AccessibilitySSB  BART Group Mobile Accessibility
SSB BART Group Mobile Accessibility
 
WhatsApp security
WhatsApp securityWhatsApp security
WhatsApp security
 

Similar to ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, from Newts to Newton

How to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning BattleHow to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning Battle
Capgemini
 
JavaMicroBenchmarkpptm
JavaMicroBenchmarkpptmJavaMicroBenchmarkpptm
JavaMicroBenchmarkpptm
Srinivasan Raghavan
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
shintaro mizuno
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentation
Ian Renyard
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
Steve Poole
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
Serverless
ServerlessServerless
Serverless
Vishwas N
 
Performance tuning intro
Performance tuning introPerformance tuning intro
Performance tuning intro
aioughydchapter
 
Performance Tuning intro
Performance Tuning introPerformance Tuning intro
Performance Tuning intro
AiougVizagChapter
 
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
Amir Zmora
 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Motoki Kakinuma
 
Java mission control and java flight recorder
Java mission control and java flight recorderJava mission control and java flight recorder
Java mission control and java flight recorder
Wolfgang Weigend
 
Beginners Guide to High Availability for Postgres
Beginners Guide to High Availability for PostgresBeginners Guide to High Availability for Postgres
Beginners Guide to High Availability for Postgres
EDB
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
Roman Kharkovski
 
Building a starter kit cedg20181010
Building a starter kit cedg20181010Building a starter kit cedg20181010
Building a starter kit cedg20181010
Joe Walling
 
Tune your App Perf (and get fit for summer)
Tune your App Perf (and get fit for summer)Tune your App Perf (and get fit for summer)
Tune your App Perf (and get fit for summer)
Sqreen
 
Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10
CA Technologies
 
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
Jonas Rosland
 
Replay Solutions CFD
Replay Solutions CFDReplay Solutions CFD
Replay Solutions CFD
kilroy440
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applications
Rogue Wave Software
 

Similar to ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, from Newts to Newton (20)

How to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning BattleHow to Become a Winner in the JVM Performance-Tuning Battle
How to Become a Winner in the JVM Performance-Tuning Battle
 
JavaMicroBenchmarkpptm
JavaMicroBenchmarkpptmJavaMicroBenchmarkpptm
JavaMicroBenchmarkpptm
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
 
Arm html5 presentation
Arm html5 presentationArm html5 presentation
Arm html5 presentation
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
Serverless
ServerlessServerless
Serverless
 
Performance tuning intro
Performance tuning introPerformance tuning intro
Performance tuning intro
 
Performance Tuning intro
Performance Tuning introPerformance Tuning intro
Performance Tuning intro
 
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
 
Java mission control and java flight recorder
Java mission control and java flight recorderJava mission control and java flight recorder
Java mission control and java flight recorder
 
Beginners Guide to High Availability for Postgres
Beginners Guide to High Availability for PostgresBeginners Guide to High Availability for Postgres
Beginners Guide to High Availability for Postgres
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
 
Building a starter kit cedg20181010
Building a starter kit cedg20181010Building a starter kit cedg20181010
Building a starter kit cedg20181010
 
Tune your App Perf (and get fit for summer)
Tune your App Perf (and get fit for summer)Tune your App Perf (and get fit for summer)
Tune your App Perf (and get fit for summer)
 
Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10
 
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
 
Replay Solutions CFD
Replay Solutions CFDReplay Solutions CFD
Replay Solutions CFD
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applications
 

More from Istanbul Tech Talks

ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and ScaleITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
Istanbul Tech Talks
 
ITT 2015 - Ash Furrow - Lessons from Production Swift
ITT 2015 - Ash Furrow - Lessons from Production SwiftITT 2015 - Ash Furrow - Lessons from Production Swift
ITT 2015 - Ash Furrow - Lessons from Production Swift
Istanbul Tech Talks
 
ITT 2015 - Saul Mora - Object Oriented Function Programming
ITT 2015 - Saul Mora - Object Oriented Function ProgrammingITT 2015 - Saul Mora - Object Oriented Function Programming
ITT 2015 - Saul Mora - Object Oriented Function Programming
Istanbul Tech Talks
 
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
Istanbul Tech Talks
 
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
Istanbul Tech Talks
 
ITT 2014 - Mario Zechner - Libgdx 101
ITT 2014 - Mario Zechner - Libgdx 101ITT 2014 - Mario Zechner - Libgdx 101
ITT 2014 - Mario Zechner - Libgdx 101
Istanbul Tech Talks
 
ITT 2014 - Orta Therox- Mobile and the Art World
ITT 2014 - Orta Therox- Mobile and the Art WorldITT 2014 - Orta Therox- Mobile and the Art World
ITT 2014 - Orta Therox- Mobile and the Art World
Istanbul Tech Talks
 
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVMITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
Istanbul Tech Talks
 
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular CodebasesITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
Istanbul Tech Talks
 
ITT 2014 - Max Seelemann - Hello TextKit!
ITT 2014 - Max Seelemann - Hello TextKit!ITT 2014 - Max Seelemann - Hello TextKit!
ITT 2014 - Max Seelemann - Hello TextKit!
Istanbul Tech Talks
 
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
Istanbul Tech Talks
 
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better NetworkingITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
Istanbul Tech Talks
 
ITT 2014 - Chris Eidhof - Practical Concurrent Programming
ITT 2014 - Chris Eidhof - Practical Concurrent ProgrammingITT 2014 - Chris Eidhof - Practical Concurrent Programming
ITT 2014 - Chris Eidhof - Practical Concurrent Programming
Istanbul Tech Talks
 
ITT 2014 - Matt Brenner- Localization 2.0
ITT 2014 - Matt Brenner- Localization 2.0ITT 2014 - Matt Brenner- Localization 2.0
ITT 2014 - Matt Brenner- Localization 2.0
Istanbul Tech Talks
 

More from Istanbul Tech Talks (14)

ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and ScaleITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
 
ITT 2015 - Ash Furrow - Lessons from Production Swift
ITT 2015 - Ash Furrow - Lessons from Production SwiftITT 2015 - Ash Furrow - Lessons from Production Swift
ITT 2015 - Ash Furrow - Lessons from Production Swift
 
ITT 2015 - Saul Mora - Object Oriented Function Programming
ITT 2015 - Saul Mora - Object Oriented Function ProgrammingITT 2015 - Saul Mora - Object Oriented Function Programming
ITT 2015 - Saul Mora - Object Oriented Function Programming
 
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
ITT 2015 - Simon Tennant - Your App Just Got Social: Adding Messaging to Your...
 
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
ITT 2015 - Hugo Domenech-Juarez - What's All That Hype About BLE?
 
ITT 2014 - Mario Zechner - Libgdx 101
ITT 2014 - Mario Zechner - Libgdx 101ITT 2014 - Mario Zechner - Libgdx 101
ITT 2014 - Mario Zechner - Libgdx 101
 
ITT 2014 - Orta Therox- Mobile and the Art World
ITT 2014 - Orta Therox- Mobile and the Art WorldITT 2014 - Orta Therox- Mobile and the Art World
ITT 2014 - Orta Therox- Mobile and the Art World
 
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVMITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
ITT 2014 - Niklas Therning - Truly Native Java Apps on iOS with RoboVM
 
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular CodebasesITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
 
ITT 2014 - Max Seelemann - Hello TextKit!
ITT 2014 - Max Seelemann - Hello TextKit!ITT 2014 - Max Seelemann - Hello TextKit!
ITT 2014 - Max Seelemann - Hello TextKit!
 
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
ITT 2014 - Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android...
 
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better NetworkingITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
 
ITT 2014 - Chris Eidhof - Practical Concurrent Programming
ITT 2014 - Chris Eidhof - Practical Concurrent ProgrammingITT 2014 - Chris Eidhof - Practical Concurrent Programming
ITT 2014 - Chris Eidhof - Practical Concurrent Programming
 
ITT 2014 - Matt Brenner- Localization 2.0
ITT 2014 - Matt Brenner- Localization 2.0ITT 2014 - Matt Brenner- Localization 2.0
ITT 2014 - Matt Brenner- Localization 2.0
 

Recently uploaded

DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
gestioneergodomus
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
Ratnakar Mikkili
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
ssuser36d3051
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 

Recently uploaded (20)

DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 

ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, from Newts to Newton

  • 1. Copyright 2015 Kodewerk Ltd. All rights reserved The (not so) Dark Art of Performance Tuning From Newts to Newton
  • 2. Copyright 2015 Kodewerk Ltd. All rights reserved Java Performance Tuning Workshops About Me Co-Founded jClarity Co-Founded www.javaperformancetuning.com Kodewerk Ltd Performance Consulting
  • 3. Copyright 2015 Kodewerk Ltd. All rights reserved Disclaimer The resemblance of any opinion, recommendation or comment made during this presentation to actual performance tuning advice is merely coincidental.
  • 4. Copyright 2015 Kodewerk Ltd. All rights reserved Our Typical Customer Application isn’t performing to project sponsors expectations users can wait for minutes for simply queries to complete Development team has been tuning for weeks no real improvement︙.
  • 5. Copyright 2015 Kodewerk Ltd. All rights reserved Finger Pointing Different team experts come to the table with different opinions I see StringBuffer is being used all over, lets change it to StringBuilder I think our DBMS is the problem, we need to migrate to [buzzword goes here] DBA claimed transactions are clearing very quickly Networking claims normal levels of saturation Server admin claims I/O channels are all ok but CPU is running hot no rouge applications are running along side application JEE Admin claims server is configured as it should be
  • 6. Copyright 2015 Kodewerk Ltd. All rights reserved Project is canceled!!!!
  • 7. Copyright 2015 Kodewerk Ltd. All rights reserved Where is the problem?
  • 8. Copyright 2015 Kodewerk Ltd. All rights reserved Measure Don’t Guess®
  • 9. Copyright 2015 Kodewerk Ltd. All rights reserved Software is Abstract public class Software { public static void main( String[] args) { System.out.println(“Software is abstract”); } }
  • 10. Copyright 2015 Kodewerk Ltd. All rights reserved Hardware is Real!
  • 11. Copyright 2015 Kodewerk Ltd. All rights reserved Physical Limits CPU capacity throughput : clock speed granularity: cache line Memory capacity : volume Bus throughput : clock speed width : 32 bits
  • 12. Copyright 2015 Kodewerk Ltd. All rights reserved Limits of Hardware disk ~1 Bbit/sec (SATA ~3Gbits/sec) granularity: disk sector (512 bytes) Network frame buffer/packet frequency (clock)
  • 13. Copyright 2015 Kodewerk Ltd. All rights reserved Other Limits other hardware devices video/sound heat battery time
  • 14. Copyright 2015 Kodewerk Ltd. All rights reserved public class Software { public static void main( String[] args) { System.out.println(“Software is abstract”); } }
  • 15. Copyright 2015 Kodewerk Ltd. All rights reserved Application Developers Live Here business logic, non-shareable soft resources
  • 16. Copyright 2015 Kodewerk Ltd. All rights reserved
  • 17. Copyright 2015 Kodewerk Ltd. All rights reserved Question? Which is faster? a) Bubble sort b) Quick sort In Big O notation... - Bubble sort is N^2 - Quick sort of Nlog(N)
  • 18. Copyright 2015 Kodewerk Ltd. All rights reserved However! bubble quick
  • 19. Copyright 2015 Kodewerk Ltd. All rights reserved Performance Tuning The space can be humongous you can’t traverse it all assume something is or isn’t part of the problem
  • 20. Copyright 2015 Kodewerk Ltd. All rights reserved Believe it or not If youombine The source of the problem can be reasoned if you combine; the facts presented some understanding of how the OS/Hardware function an understanding of the JEE specification
  • 21. Copyright 2015 Kodewerk Ltd. All rights reserved Performance Tuning Methodology If youombine Prefer hypothesis free investigation be methodical step wise process to arrive at a conclusion Drive the process using a Performance Diagnostic Model
  • 22. Copyright 2015 Kodewerk Ltd. All rights reserved Application Developers Live Here dynamicsalgorithmic strength
  • 23. Copyright 2015 Kodewerk Ltd. All rights reserved OS/Hardware JVM Application Applications Live Here CPU, memory, disk I/O network I/O, Locks manage memory, execution dynamics algorithmic strength
  • 24. Copyright 2015 Kodewerk Ltd. All rights reserved OS/Hardware JVM Application Actors Add Dynamics CPU, memory, disk I/O network I/O, Locks manage memory, execution Actors usage patterns algorithmic strength
  • 25. Copyright 2015 Kodewerk Ltd. All rights reserved OS/Hardware JVM Application Actors Hardware Consumption CPU, memory, disk I/O network I/O. Locks manage memory, execution usage patterns Actors drives application Application drives JVM JVM drives OS/Hardware Hardware is consumed function of how actors interact with system function of how application is coded consumption cannot exceed capacity pattern of consumption is important algorithmic strength
  • 26. Copyright 2015 Kodewerk Ltd. All rights reserved OS/Hardware JVM Application Actors Dominating Consumer CPU, memory, disk I/O network I/O. Locks manage memory, execution usage patterns algorithmic strength Activity that dominates how the CPU is utilized Determine by analyizing breakout of CPU counters garbage collection logs
  • 27. Copyright 2015 Kodewerk Ltd. All rights reserved Dominating Consumer Choices OS/Hardware Application Actors CPU, memory, disk I/O network I/O, Locks manage memory, execution algorithmic strength usage patterns Application JVM None System JVM
  • 28. Copyright 2015 Kodewerk Ltd. All rights reserved Dominating Consumer Conditions sys cpu > 10% of user cpu user CPU ~= 100% memory efficient? GC Logs Application JVMNone System system profiling: netstat, mpstat, iostat, sar, strace, etc... Thread starvation Thread dump app/CPU profiling GC tuning, pool sizes, collectors, ... Memory profiling, size frequency, life span,... yes yes yes no no no
  • 29. Copyright 2015 Kodewerk Ltd. All rights reserved Expression of Consumption Application JVMNone System passively dominant aggressivly dominant
  • 30. Copyright 2015 Kodewerk Ltd. All rights reserved Measuing Consumption Application JVMNone System Kernel time Idle User time
  • 31. Copyright 2015 Kodewerk Ltd. All rights reserved r b swpd free buff cache si so bi bo in cs us sy id wa ! 3 9 100 24496 11096 13267036 0 0 0 5 0 1 2 1 96 1! 3 2 100 23420 11088 13268328 0 0 0 0 77330 175352 17 26 39 17! 3 9 100 20836 11088 13270628 0 0 0 68 105118 227382 14 40 21 25! 8 4 100 23356 11080 13268272 0 0 0 0 80062 164387 12 30 29 30! 7 7 100 23180 11084 13267068 0 0 0 72 98353 234851 15 43 28 15! 11 2 100 25820 11088 13263676 0 0 0 120 100749 214921 11 42 17 30! 13 1 100 22316 11088 13267176 0 0 0 0 103878 246723 16 56 19 9 ! 4 3 100 21824 11088 13269140 0 0 0 0 48625 97288 15 16 9 60! 11 2 100 20932 11080 13269808 0 0 0 0 110760 236774 14 41 24 20! 1 12 100 23624 11084 13267488 0 0 0 204 69117 148611 15 27 25 33! 7 5 100 24996 11096 13267476 0 0 0 164 24495 48552 13 10 30 48! 1 12 100 20792 11096 13271872 0 0 0 0 25659 54331 8 9 26 56! 6 8 100 21984 11080 13269920 0 0 0 20 46309 101404 16 18 51 15! 4 9 100 22764 11080 13268956 0 0 16 0 88553 229557 17 35 38 11
  • 32. Copyright 2015 Kodewerk Ltd. All rights reserved Performance benchmarking
  • 33. Copyright 2015 Kodewerk Ltd. All rights reserved Actors Test harness Application JVM Hardware/OS Data Monitoring Things we need
  • 34. Copyright 2015 Kodewerk Ltd. All rights reserved Process Benchmark benchmark = new Benchmark() benchmark.configure(); performance = benchmark.baseline(application); user.setHappy(performance.meets(requirements)); while (( ! user.isHappy()) && (user.hasMoney())) { Profiler profiler = performance.identifyDominatingConsumer(); profilingResults = benchmark.profile(profiler); application.fixUsing( profilingResults); while ( application.failsQA()) application.debug(); performance = benchmark.baseline(application); user.setHappy(performance.meets(requirements)); }
  • 35. Copyright 2015 Kodewerk Ltd. All rights reserved Time for a demo
  • 36. Copyright 2015 Kodewerk Ltd. All rights reserved Dominating Consumer Demo sys cpu > 10% of user cpu System system profiling: netstat, mpstat, iostat, sar, strace, etc... yes Question? Why the high level of kernel CPU? Observations no disk I/O, network activity or video context switching due to lock contention? Monitor threads with VisualVM
  • 37. Copyright 2015 Kodewerk Ltd. All rights reserved Dominating Consumer Conditions sys cpu > 10% of user cpu user CPU ~= 100% memory efficient? GC Logs JVM Memory profiling, size frequency, life span,... yes no no Question? Why the high memory consumption Profile object creation
  • 38. Copyright 2015 Kodewerk Ltd. All rights reserved What about our Customer? Need to gather clear requirements Develop a sound benchmarking environment get better measurements Always identify dominating consumer refocus teams on problems that matter
  • 39. Copyright 2015 Kodewerk Ltd. All rights reserved Questions?