SlideShare a Scribd company logo
1 of 26
PERFORMANCE
IS NOT A MYTH
P E R F O R M A N C E A D V I S O R Y C O U N C I L
SANTORINI GREECE
FEBRUARY 26 - 27 2020
Continuous Performance Optimization of
Java Applications
Giovanni Paolo Gibilisco
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Introduction
• Automation and CI have done a great job
simplifying deployment and environment
provisioning
• Performance testing tools are evolving to ease
integration
• We should take the baton and go further
evolving the way we do performance testing
and optimization
P E R F O R M A N C E A D V I S O R Y C O U N C I L
Continuous Performance Testing
Continuous Performance Optimization
Use Case
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Continuous Performance Testing
• This is a hot topic for Performance Engineers
• Stephen Townshend – “Preparing for the pipeline”
• Alexander Podelko – “Continuous Performance Testing: Myths and Realities”
• Bruno Da Silva – “Continuous Performance Innovative Approach”
• Amir Rozenberg – “Shifting left performance testing”
• Tingting Zong – “Integrate Performance test with DevOps”
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
A common toolset
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
A common pipeline
• Performance tests usually focus on a subset of components or
functionalities
• Focus on finding performance regressions
Build Unit Test Integration Test End 2 End TestDeploy Performance Test Release
Prepare Test Data Run Test Analyze ResultsProvision Load Infrastructure
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Why stop here?
• Each release might change the way
application uses resources
• Performance Regression make sure you
don’t do worst than previous iteration
• What about doing better than before?
Performance Improvements are left on the
table
“I’ve changed my data
structure, should I switch
to another GC type?”
“Has my heap usage pattern
changed?”
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Configuration is key
• Treated as application code
• Has huge impact on performance
• Most of the time vendor default is used
• Growing Complexity
2006 2009 2013 2016 2019
NumberofConfigurationOptions
847
520
270
50
P E R F O R M A N C E A D V I S O R Y C O U N C I L
Continuous Performance Testing
Continuous Performance Optimization
Use Case
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Continuous Performance Optimization
• A new kid in the pipeline block
• See performance improvements of application changes immediately. Not just regressions
• Adapt configuration to new application features and releases
Build Unit Test Integration Test End 2 End TestDeploy Performance Test
Prepare Test Data Run Test Analyze ResultsProvision Load Infrastructure
Optimize Release
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Why it is so hard?
• Configuration Selection
• Manual (slow, expertise, trial and error)
• One parameter change at a time
• Huge configuration space (is random exploration
effective?)
• Machine Learning comes to aid
• Analyze performance test and assign a
performance score
• Usually manual (slow, need expertise)
• Some time a Boolean score based on thresholds (e.g.
alarms, gateways)
• Challenges: startup, noise, stability, …
• Multiple KPIs (Throughput, Latency, Utilization..)
Run Test Analyze ResultsPrepare Test Data Optimize
P E R F O R M A N C E A D V I S O R Y C O U N C I L
Continuous Performance Testing
Continuous Performance Optimization
Use Case
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
The App
• Core business application in charge of searching for
flight combinations
• “Searcho” is a microservice composed by Tomcat and a
JVM application
• JVM configuration is written in a file and committed to a
Git repo
• Gitlab Pipeline takes care of deploying the configuration
changes
• Kubernetes deployment takes care of restarting the
services
Searcho
Dev
Namespace
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
The Goal
Maximize Searcho Transactions Per Second
… complying with the following constraints (5 mins evaluation window):
• stability: TPS std. dev. within the window must be < 3
• response time: avg. response times within the window must be < 4 sec
• errors
• http error rate within the window must be < 1%
• log errors within the windows must be < 10
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Optimization Scope
Which is the best Garbage Collection (GC) algo for
this workload?
• Baseline: reference value of Searcho with a manually
tuned JVM configuration
• G1: study on 12 JVM parameters using G1 GC
algorithm
• Parallel: optimized 11 JVM parameters using Parallel
GC algorithm
11.03
13.6
11.69
Baseline
Parallel
G1
Baseline Parallel G1
+23%
+5%
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Peak throughput
Best window that satisfies all the
constraints in baseline
experiment: 11.03 TPS
Best window that satisfies all the
constraints in best experiment:
12.61 TPS
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Lower response time
Baseline:
7.5+ sec @63 VU
Best:
5.5 sec @63 VU
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Lower GC time
Baseline:
200 ms @63 VU
Best:
40 ms @63 VU
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Lower throttling
Baseline:
1.7+ sec @63 VU
Best:
0.5 sec @63 VU
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Higher memory efficiency
• Overall heap utilization has been reduced
• Compilation parameters optimized to reduce CPU
consumption
• Optimized heap inner space
• Startup memory allocation to avoid noisy
neighbors
• Increased GC parallelism to reduce pauses
Configuration Peak TPS Heap Size (MB) TPS/Heap
Serchio default 11.03 6656 0.0017
High TPS 13.61 5714 0.0023 (+35%)
Efficiency 12.31 4152 0.0030 (+76%)
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
A Stability study
Can we serve traffic without degrading quality when workload is
increasing?
• … complying with the following constraints:
• response time: avg. response times within the
window has to be < 7.5 sec
• throughput: TPS within the window must be > 10
• Baseline: reference value of Searchio with
tuned configuration
• Tomcat: optimized 3 tomcat parameters related
to threading and queuing
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Keep serving traffic
Baseline:
100% error from 90 VU
Best:
13.61 TPS @ 100 VU
Same behavior up
to the breaking
point
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Reduce response time degradation
Baseline:
11+ sec @ 90 VU
Best:
7.5 sec @ 100 VU
Same behavior up
to the breaking
point
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Lower GC time
Baseline:
150 +ms @ 90 VU
Best:
20 ms @ 100 VU
Same behavior up
to the breaking
point
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Lower throttling
Baseline:
3 ms @ 90 VU
Best:
0.2 ms @ 100 VU
Same behavior up
to the breaking
point
P E R F O R M A N C E A D V I S O R Y C O U N C I L
byP E R F O R M A N C E A D V I S O R Y C O U N C I L
Takeaways
• Automation in CI is great but is just a starting point
• Continuous Performance Testing allows to avoid regressions and let us sleep well
• Manual Optimization is hard, tedious and ages as faster as the software evolves
• Continuous Performance Optimization let us find performance improvements due to
application changes

More Related Content

What's hot

Key Measurements For Testers
Key Measurements For TestersKey Measurements For Testers
Key Measurements For Testers
QA Programmer
 

What's hot (20)

IEEE Buenaventura cs Chapter March 9 2016 v4
IEEE Buenaventura cs Chapter March 9 2016  v4IEEE Buenaventura cs Chapter March 9 2016  v4
IEEE Buenaventura cs Chapter March 9 2016 v4
 
Seeing RED: Monitoring and Observability in the Age of Microservices
Seeing RED: Monitoring and Observability in the Age of MicroservicesSeeing RED: Monitoring and Observability in the Age of Microservices
Seeing RED: Monitoring and Observability in the Age of Microservices
 
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things BetterTaking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
 
Observe 2020-d mc
Observe 2020-d mcObserve 2020-d mc
Observe 2020-d mc
 
Murphys laws for Observability
Murphys laws for ObservabilityMurphys laws for Observability
Murphys laws for Observability
 
Dill may-2008
Dill may-2008Dill may-2008
Dill may-2008
 
Final observability starts_with_data
Final observability starts_with_dataFinal observability starts_with_data
Final observability starts_with_data
 
SRE vs DevOps
SRE vs DevOpsSRE vs DevOps
SRE vs DevOps
 
Serena Webcast: Accelerating Application Delivery with Continuous Testing
Serena Webcast: Accelerating Application Delivery with Continuous TestingSerena Webcast: Accelerating Application Delivery with Continuous Testing
Serena Webcast: Accelerating Application Delivery with Continuous Testing
 
Synthetic and rum webinar
Synthetic and rum webinarSynthetic and rum webinar
Synthetic and rum webinar
 
Key Measurements For Testers
Key Measurements For TestersKey Measurements For Testers
Key Measurements For Testers
 
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
 
JavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryJavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont Delivery
 
Arizona State University Test Lecture
Arizona State University Test LectureArizona State University Test Lecture
Arizona State University Test Lecture
 
Replicated Siamese LSTM in Ticketing System for Similarity Learning and Retri...
Replicated Siamese LSTM in Ticketing System for Similarity Learning and Retri...Replicated Siamese LSTM in Ticketing System for Similarity Learning and Retri...
Replicated Siamese LSTM in Ticketing System for Similarity Learning and Retri...
 
AppSec Pipeline - Velcocity NY 2015
AppSec Pipeline - Velcocity NY 2015AppSec Pipeline - Velcocity NY 2015
AppSec Pipeline - Velcocity NY 2015
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 

Similar to PAC 2020 Santorin - Giovanni Paolo Gibilisco

4Developers 2015: Measure to fail - Tomasz Kowalczewski
4Developers 2015: Measure to fail - Tomasz Kowalczewski4Developers 2015: Measure to fail - Tomasz Kowalczewski
4Developers 2015: Measure to fail - Tomasz Kowalczewski
PROIDEA
 

Similar to PAC 2020 Santorin - Giovanni Paolo Gibilisco (20)

PAC 2020 Santorin - Vasilis Chatzinasios
PAC 2020 Santorin - Vasilis ChatzinasiosPAC 2020 Santorin - Vasilis Chatzinasios
PAC 2020 Santorin - Vasilis Chatzinasios
 
JavaFX Enterprise
JavaFX EnterpriseJavaFX Enterprise
JavaFX Enterprise
 
Process Capability: Step 5 (Non-Normal Distributions)
Process Capability: Step 5 (Non-Normal Distributions)Process Capability: Step 5 (Non-Normal Distributions)
Process Capability: Step 5 (Non-Normal Distributions)
 
Improvement of strip thickness control through the process of data analytics
Improvement of strip thickness control through the process of data analyticsImprovement of strip thickness control through the process of data analytics
Improvement of strip thickness control through the process of data analytics
 
160kV 35um spot
160kV 35um spot160kV 35um spot
160kV 35um spot
 
7 simulation, construction, operation, &amp; back again - how operational d...
7   simulation, construction, operation, &amp; back again - how operational d...7   simulation, construction, operation, &amp; back again - how operational d...
7 simulation, construction, operation, &amp; back again - how operational d...
 
PAC 2020 Santorin - Ankur Jain
PAC 2020 Santorin - Ankur JainPAC 2020 Santorin - Ankur Jain
PAC 2020 Santorin - Ankur Jain
 
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka GarwolińskaTGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
 
PAC 2019 virtual Stijn Schepers
PAC 2019 virtual Stijn SchepersPAC 2019 virtual Stijn Schepers
PAC 2019 virtual Stijn Schepers
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...The when & why of evolution of performance testing to performance engineering...
The when & why of evolution of performance testing to performance engineering...
 
4Developers 2015: Measure to fail - Tomasz Kowalczewski
4Developers 2015: Measure to fail - Tomasz Kowalczewski4Developers 2015: Measure to fail - Tomasz Kowalczewski
4Developers 2015: Measure to fail - Tomasz Kowalczewski
 
Measure to fail
Measure to failMeasure to fail
Measure to fail
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
 
TQM
TQMTQM
TQM
 
Value add: Single User Performance Testing (http://managingperformancetesting...
Value add: Single User Performance Testing (http://managingperformancetesting...Value add: Single User Performance Testing (http://managingperformancetesting...
Value add: Single User Performance Testing (http://managingperformancetesting...
 
Process Capability: Step 4 (Normal Distributions)
Process Capability: Step 4 (Normal Distributions)Process Capability: Step 4 (Normal Distributions)
Process Capability: Step 4 (Normal Distributions)
 
Six Sigma Project = Internet Sample
Six Sigma Project = Internet SampleSix Sigma Project = Internet Sample
Six Sigma Project = Internet Sample
 
Training - What is Performance ?
Training  - What is Performance ?Training  - What is Performance ?
Training - What is Performance ?
 
PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner
 

More from Neotys

More from Neotys (20)

PAC 2020 Santorin - Hari Krishnan Ramachandran
PAC 2020 Santorin - Hari Krishnan RamachandranPAC 2020 Santorin - Hari Krishnan Ramachandran
PAC 2020 Santorin - Hari Krishnan Ramachandran
 
PAC 2020 Santorin - Stephen Townshend
PAC 2020 Santorin - Stephen TownshendPAC 2020 Santorin - Stephen Townshend
PAC 2020 Santorin - Stephen Townshend
 
PAC 2020 Santorin - Leandro Melendez
PAC 2020 Santorin - Leandro MelendezPAC 2020 Santorin - Leandro Melendez
PAC 2020 Santorin - Leandro Melendez
 
PAC 2019 virtual Stephen Townshend
PAC 2019 virtual Stephen TownshendPAC 2019 virtual Stephen Townshend
PAC 2019 virtual Stephen Townshend
 
PAC 2019 virtual Federico Toledo
PAC 2019 virtual Federico Toledo   PAC 2019 virtual Federico Toledo
PAC 2019 virtual Federico Toledo
 
PAC 2019 virtual Leandro Melendez
PAC 2019 virtual Leandro Melendez PAC 2019 virtual Leandro Melendez
PAC 2019 virtual Leandro Melendez
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
PAC 2019 virtual Srivalli Aparna
PAC 2019 virtual Srivalli AparnaPAC 2019 virtual Srivalli Aparna
PAC 2019 virtual Srivalli Aparna
 
PAC 2019 virtual Reuben Rajan George
PAC 2019 virtual Reuben Rajan GeorgePAC 2019 virtual Reuben Rajan George
PAC 2019 virtual Reuben Rajan George
 
PAC 2019 virtual Joerek Van Gaalen
PAC 2019 virtual Joerek Van GaalenPAC 2019 virtual Joerek Van Gaalen
PAC 2019 virtual Joerek Van Gaalen
 
PAC 2019 virtual Hemalatha Murugesan
PAC 2019 virtual Hemalatha Murugesan  PAC 2019 virtual Hemalatha Murugesan
PAC 2019 virtual Hemalatha Murugesan
 
PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg  PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg
 
PAC 2019 virtual Antoine Toulme
PAC 2019 virtual Antoine ToulmePAC 2019 virtual Antoine Toulme
PAC 2019 virtual Antoine Toulme
 
PAC 2019 virtual Scott Moore
PAC 2019  virtual   Scott Moore PAC 2019  virtual   Scott Moore
PAC 2019 virtual Scott Moore
 
PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni   PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni
 
PAC 2019 virtual Uma Malini ; Hari Krishnan RAMACHANDRAN
PAC 2019 virtual Uma Malini ; Hari Krishnan RAMACHANDRANPAC 2019 virtual Uma Malini ; Hari Krishnan RAMACHANDRAN
PAC 2019 virtual Uma Malini ; Hari Krishnan RAMACHANDRAN
 
PAC 2019 virtual Philip Webb
PAC 2019 virtual Philip Webb PAC 2019 virtual Philip Webb
PAC 2019 virtual Philip Webb
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
 
PAC 2019 virtual Alexander Podelko
PAC 2019 virtual Alexander Podelko PAC 2019 virtual Alexander Podelko
PAC 2019 virtual Alexander Podelko
 
Using Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and QualityUsing Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and Quality
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Recently uploaded (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 

PAC 2020 Santorin - Giovanni Paolo Gibilisco

  • 1. PERFORMANCE IS NOT A MYTH P E R F O R M A N C E A D V I S O R Y C O U N C I L SANTORINI GREECE FEBRUARY 26 - 27 2020 Continuous Performance Optimization of Java Applications Giovanni Paolo Gibilisco
  • 2. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Introduction • Automation and CI have done a great job simplifying deployment and environment provisioning • Performance testing tools are evolving to ease integration • We should take the baton and go further evolving the way we do performance testing and optimization
  • 3. P E R F O R M A N C E A D V I S O R Y C O U N C I L Continuous Performance Testing Continuous Performance Optimization Use Case
  • 4. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Continuous Performance Testing • This is a hot topic for Performance Engineers • Stephen Townshend – “Preparing for the pipeline” • Alexander Podelko – “Continuous Performance Testing: Myths and Realities” • Bruno Da Silva – “Continuous Performance Innovative Approach” • Amir Rozenberg – “Shifting left performance testing” • Tingting Zong – “Integrate Performance test with DevOps”
  • 5. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L A common toolset
  • 6. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L A common pipeline • Performance tests usually focus on a subset of components or functionalities • Focus on finding performance regressions Build Unit Test Integration Test End 2 End TestDeploy Performance Test Release Prepare Test Data Run Test Analyze ResultsProvision Load Infrastructure
  • 7. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Why stop here? • Each release might change the way application uses resources • Performance Regression make sure you don’t do worst than previous iteration • What about doing better than before? Performance Improvements are left on the table “I’ve changed my data structure, should I switch to another GC type?” “Has my heap usage pattern changed?”
  • 8. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Configuration is key • Treated as application code • Has huge impact on performance • Most of the time vendor default is used • Growing Complexity 2006 2009 2013 2016 2019 NumberofConfigurationOptions 847 520 270 50
  • 9. P E R F O R M A N C E A D V I S O R Y C O U N C I L Continuous Performance Testing Continuous Performance Optimization Use Case
  • 10. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Continuous Performance Optimization • A new kid in the pipeline block • See performance improvements of application changes immediately. Not just regressions • Adapt configuration to new application features and releases Build Unit Test Integration Test End 2 End TestDeploy Performance Test Prepare Test Data Run Test Analyze ResultsProvision Load Infrastructure Optimize Release
  • 11. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Why it is so hard? • Configuration Selection • Manual (slow, expertise, trial and error) • One parameter change at a time • Huge configuration space (is random exploration effective?) • Machine Learning comes to aid • Analyze performance test and assign a performance score • Usually manual (slow, need expertise) • Some time a Boolean score based on thresholds (e.g. alarms, gateways) • Challenges: startup, noise, stability, … • Multiple KPIs (Throughput, Latency, Utilization..) Run Test Analyze ResultsPrepare Test Data Optimize
  • 12. P E R F O R M A N C E A D V I S O R Y C O U N C I L Continuous Performance Testing Continuous Performance Optimization Use Case
  • 13. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L The App • Core business application in charge of searching for flight combinations • “Searcho” is a microservice composed by Tomcat and a JVM application • JVM configuration is written in a file and committed to a Git repo • Gitlab Pipeline takes care of deploying the configuration changes • Kubernetes deployment takes care of restarting the services Searcho Dev Namespace
  • 14. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L The Goal Maximize Searcho Transactions Per Second … complying with the following constraints (5 mins evaluation window): • stability: TPS std. dev. within the window must be < 3 • response time: avg. response times within the window must be < 4 sec • errors • http error rate within the window must be < 1% • log errors within the windows must be < 10
  • 15. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Optimization Scope Which is the best Garbage Collection (GC) algo for this workload? • Baseline: reference value of Searcho with a manually tuned JVM configuration • G1: study on 12 JVM parameters using G1 GC algorithm • Parallel: optimized 11 JVM parameters using Parallel GC algorithm 11.03 13.6 11.69 Baseline Parallel G1 Baseline Parallel G1 +23% +5%
  • 16. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Peak throughput Best window that satisfies all the constraints in baseline experiment: 11.03 TPS Best window that satisfies all the constraints in best experiment: 12.61 TPS
  • 17. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Lower response time Baseline: 7.5+ sec @63 VU Best: 5.5 sec @63 VU
  • 18. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Lower GC time Baseline: 200 ms @63 VU Best: 40 ms @63 VU
  • 19. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Lower throttling Baseline: 1.7+ sec @63 VU Best: 0.5 sec @63 VU
  • 20. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Higher memory efficiency • Overall heap utilization has been reduced • Compilation parameters optimized to reduce CPU consumption • Optimized heap inner space • Startup memory allocation to avoid noisy neighbors • Increased GC parallelism to reduce pauses Configuration Peak TPS Heap Size (MB) TPS/Heap Serchio default 11.03 6656 0.0017 High TPS 13.61 5714 0.0023 (+35%) Efficiency 12.31 4152 0.0030 (+76%)
  • 21. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L A Stability study Can we serve traffic without degrading quality when workload is increasing? • … complying with the following constraints: • response time: avg. response times within the window has to be < 7.5 sec • throughput: TPS within the window must be > 10 • Baseline: reference value of Searchio with tuned configuration • Tomcat: optimized 3 tomcat parameters related to threading and queuing
  • 22. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Keep serving traffic Baseline: 100% error from 90 VU Best: 13.61 TPS @ 100 VU Same behavior up to the breaking point
  • 23. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Reduce response time degradation Baseline: 11+ sec @ 90 VU Best: 7.5 sec @ 100 VU Same behavior up to the breaking point
  • 24. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Lower GC time Baseline: 150 +ms @ 90 VU Best: 20 ms @ 100 VU Same behavior up to the breaking point
  • 25. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Lower throttling Baseline: 3 ms @ 90 VU Best: 0.2 ms @ 100 VU Same behavior up to the breaking point
  • 26. P E R F O R M A N C E A D V I S O R Y C O U N C I L byP E R F O R M A N C E A D V I S O R Y C O U N C I L Takeaways • Automation in CI is great but is just a starting point • Continuous Performance Testing allows to avoid regressions and let us sleep well • Manual Optimization is hard, tedious and ages as faster as the software evolves • Continuous Performance Optimization let us find performance improvements due to application changes