Load testing and
performance tracing
My Name is Hans Höchtl
Technical director @ Onedrop Solutions
PHP, Java, Ruby Developer
Participation in TYPO3 Solr
Load testing
Determining the maximum
operating capacity of an
application.
Why?
- Properly scale your system
- Analyze QoS performance
- Identify bottlenecks
- Check reliability
- Verify SLA
How?
- Have a lot of friends
- Have a lot of employees
- Pay people
- Use proper software solution
Apache JMeter
- Open source java tool (therefore platform
idependent)
- Can analyze any kind of web application (or native...
Let’s look into test plans
JMeter master-slave
- Uses RMI
- Use the same network subnet or a
proxy
- Use SSH portforwarding
- If you configure live r...
Blazemeter
- SaaS solution to run JMeter tests at scale
- Can use AWS, Google Cloud, your own
machines (reduces configurat...
Blazemeter
- SaaS solution to run JMeter tests at scale
- Can use AWS, Google Cloud, your own
machines (reduces configurat...
Oh btw, don’t use it for DDoS
Now we know how our system
performs.
But where to start optimizing?
Profiling
Measure the memory usage,
complexity of a program, the
usage of particular instructions
and the frequency and du...
Performance lifecycle
Profiling
Changes
Load Testing
Application stack
CPU
Memory
Harddisk
Network
OS
Webserver
Script Interpreter
Database
PHP framework
Your application
Profiling PHP applications

- Free tools
- Xdebug + Webgrind
- XHProf + XHGUI
- Commercial tools
- Newrelic
- Blackfire.IO
Setting up XHProf and profiling an
application
Analyzing the callgraph

- Look at the excl. wall time
- Identify database heavy
components
- Check call path for IO opera...
Optimizing your application

- Use „more“ hardware
- SSD instead of HDD
- Proper caching
- Caching backend (Redis)
- Cache...
Optimizing your software

- Beware of swap
- Update/Upgrade
- Optimize database
- Use alternatives (Nginx, MariaDB,
HipHop)
http://wiki.dreamhost.com/
Web_Server_Performance_Comparison
https://entwickler.de/online/php-5-6-und-noch-mehr-
performance-139204.html
https://www.zend.com/en/resources/php7_infographic
https://blog.mariadb.org/performance-evaluation-of-
mariadb-10-1-and-mysql-5-7-4-labs-tplc/
Optimizing your database

- Inform yourself (book, webinar, etc.)
- Use the percona toolkit
- Mount your database in memor...
Frontend performance
- pagespeed
- defer loading
- image optimization
- concat, compress, etc.
- http://www.smashingmagazi...
- https://blog.engineyard.com/2014/
profiling-with-xhprof-xhgui-part-1
- https://blackfire.io/
- http://www.oreilly.de/cat...
Thank you
Mail: hhoechtl@1drop.de or jhoechtl@gmail.com

Twitter: @hhoechtl

Blog: http://blog.1drop.de
Load testing and performance tracing
Nächste SlideShare
Wird geladen in …5
×

Load testing and performance tracing

1.521 Aufrufe

Veröffentlicht am

Explaining why you should and how you can test your web application using JMeter test plans to determine the scalability. By knowing how good or bad your application performs you can then make the decision to optimize it.
But where to start optimizing? => You need to profile your application in order to see the components which have the most impact in your application regarding number of method calls, memory consumption and CPU time used.
XHProf is a good hierarchical profiler which you can use to generate the callstack and a callgraph of your application (directed acyclic weighted graph) to see where you could start optimizing your application.
This talk was presented on the TYPO3 DevDays 2015 in Nuremberg.

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.521
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
341
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Load testing and performance tracing

  1. 1. Load testing and performance tracing
  2. 2. My Name is Hans Höchtl Technical director @ Onedrop Solutions PHP, Java, Ruby Developer Participation in TYPO3 Solr
  3. 3. Load testing Determining the maximum operating capacity of an application.
  4. 4. Why? - Properly scale your system - Analyze QoS performance - Identify bottlenecks - Check reliability - Verify SLA
  5. 5. How? - Have a lot of friends - Have a lot of employees - Pay people - Use proper software solution
  6. 6. Apache JMeter - Open source java tool (therefore platform idependent) - Can analyze any kind of web application (or native software) - Easy configurable tests and graphs - Supports external data sources for serving test data - Scales
  7. 7. Let’s look into test plans
  8. 8. JMeter master-slave - Uses RMI - Use the same network subnet or a proxy - Use SSH portforwarding - If you configure live results, network bandwidth will be heavy
  9. 9. Blazemeter - SaaS solution to run JMeter tests at scale - Can use AWS, Google Cloud, your own machines (reduces configuration overhead for RMI) - Integrates with CI tools => measure performance increase/decrease before a release
  10. 10. Blazemeter - SaaS solution to run JMeter tests at scale - Can use AWS, Google Cloud, your own machines (reduces configuration overhead for RMI) - Integrates with CI tools => measure performance increase/decrease before a release
  11. 11. Oh btw, don’t use it for DDoS
  12. 12. Now we know how our system performs. But where to start optimizing?
  13. 13. Profiling Measure the memory usage, complexity of a program, the usage of particular instructions and the frequency and duration of function calls.
  14. 14. Performance lifecycle Profiling Changes Load Testing
  15. 15. Application stack CPU Memory Harddisk Network OS Webserver Script Interpreter Database PHP framework Your application
  16. 16. Profiling PHP applications
 - Free tools - Xdebug + Webgrind - XHProf + XHGUI - Commercial tools - Newrelic - Blackfire.IO
  17. 17. Setting up XHProf and profiling an application
  18. 18. Analyzing the callgraph
 - Look at the excl. wall time - Identify database heavy components - Check call path for IO operations
  19. 19. Optimizing your application
 - Use „more“ hardware - SSD instead of HDD - Proper caching - Caching backend (Redis) - Cacheable output? - OpCode Cache + APCu!!! - Reduce/optimize queries
  20. 20. Optimizing your software
 - Beware of swap - Update/Upgrade - Optimize database - Use alternatives (Nginx, MariaDB, HipHop)
  21. 21. http://wiki.dreamhost.com/ Web_Server_Performance_Comparison
  22. 22. https://entwickler.de/online/php-5-6-und-noch-mehr- performance-139204.html
  23. 23. https://www.zend.com/en/resources/php7_infographic
  24. 24. https://blog.mariadb.org/performance-evaluation-of- mariadb-10-1-and-mysql-5-7-4-labs-tplc/
  25. 25. Optimizing your database
 - Inform yourself (book, webinar, etc.) - Use the percona toolkit - Mount your database in memory (just kidding) - If on a different host, check latency - Persistent connection?
  26. 26. Frontend performance - pagespeed - defer loading - image optimization - concat, compress, etc. - http://www.smashingmagazine.com/ 2014/09/08/improving-smashing- magazine-performance-case-study/
  27. 27. - https://blog.engineyard.com/2014/ profiling-with-xhprof-xhgui-part-1 - https://blackfire.io/ - http://www.oreilly.de/catalog/ hpmysqlger/ - https://www.percona.com/software/ percona-toolkit
  28. 28. Thank you Mail: hhoechtl@1drop.de or jhoechtl@gmail.com
 Twitter: @hhoechtl
 Blog: http://blog.1drop.de

×