The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
London WebPerf Meetup: End-To-End Performance Problems
1. 1 @Dynatrace
Tech Blogs on http://blog.dynatrace.com
Free Tools on http://ajax.dynatrace.com
Web/App Performance
How to keep you out of the News
Web Perf London, Feb 2nd 2015
2. 2 @Dynatrace
Andreas Grabner
Performance Advocate @ Dynatrace
andreas.grabner@dynatrace.com
@grabnerandi
Darren Edwards
IT Service Manager @ esure
Darren.Edwards@esure.com
Darren Edwards
IT Service Manager @ esure
Darren.Edwards@esure.com
3. 3 @Dynatrace
Introduction – Darren Edwards (esure IT Service Manager)
• 28 Years in IT (Financial Services)
• Programmer
• Tools (Dev, Test, Release/Config Mgt).
• Architect
• Release Management
• Service Delivery Management – last 6 years
• Passion for delivery of reliable and
performant services to customers
4. 4 @Dynatrace
Introduction - esure
• The vision of renowned insurance entrepreneur, Peter Wood, esure Group plc is one of
the UK’s leading providers of general insurance products.
• esure has three offices in the UK, in Reigate, Surrey; Manchester and Glasgow. It
employs over 1,400 staff and has over 1.5million customers.
• Four key brands within the esure group:
24. 24 @Dynatrace
• No obvious reasons why this should be a problem
• Observed throughput through live systems and monitoring of
resources looked good
• Good to Go?
Requirement – increased volume without issues
26. 26 @Dynatrace
JSF/Resin incompatability
• Increased number of
long running JSF
methods in long
running PurePaths
• Linked to backing up
of Resin Threads
• Traced to locking
issue between JSF
and Resin
27. 27 @Dynatrace
• Short Term – Increased Resin instances
• Longer Term – Moved across to TomCat
• Peak volumes handled without issues that would have been
encountered
Remediation
31. 31 @Dynatrace
Mobile Landing Page of Super Bowl Ad
434 Resources in total on that page:
230 JPEGs, 75 PNGs, 50 GIFs, …
Total size of ~
20MB
32. 32 @Dynatrace
m.store.com redirects to www.store.com
ALL CSS and JS files are
redirected to the www domain
This is a lot of time “wasted”
especially on high latency mobile
connections
33. 33 @Dynatrace
Fifa.com during Worldcup
http://apmblog.compuware.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/
38. 38 @Dynatrace
Third Party impact
• Long running
PurePaths show
timeout of 5s set for
wait on Third Party
exceeded.
• Will continue with
overall transaction
with some data input
but impact on time
for overall service has
happened.
39. 39 @Dynatrace
• Need to ensure Third Party services can provide required
performance levels
• Need to monitor
• Look to process Third Party feeds in parallel if within a key
transaction flow to minimise added time
It’s not just your systems !!!
44. 44 @Dynatrace
Using Hibernate results in 4k+ SQL Statements to
display 3 items!
Hibernate
Executes 4k+
Statements
Individual
Execution VERY
FAST
But Total SUM
takes 6s
48. 48 @Dynatrace
Response time for key search action within a document repository
system slowing down:
• Avg Response
• Invocations
• Response -
percentile
49. 49 @Dynatrace
Trace to database query
• Looked at slow
PurePaths and identified
time being taken up by
single query
• Turned on bind variable
capture to assist with
query testing and case
identification
57. 57 @Dynatrace
•# Images
•# Redirects
•Size of Resources
•# SQL Executions
•# of SAME SQLs
•# Items per Page
•# AJAX per Page
Consider these Metrics
•Time Spent in API
•# Calls into API
•# Functional Errors
•3rd Party calls
•# of Domains
•Total Size
58. 58 @Dynatrace
Commit Stage
• Compile
• Execute Unit Test
• Code Analysis
• Build installers
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual testing
• Key showcases
• Exploratory testing Release
Unit & Integration Tests
Functional Tests
Performance Tests
Production
Monitoring
Functional Tests
(R)Evolutionize Web Performance Optimization
60. 60 @Dynatrace
Example from Web Diagnostics 282! Objects
on that page9.68MB Page Size
8.8s Page Load
Time
Most objects are images
delivered from your main
domain
Very long Connect time
(1.8s) to your CDN
61. 61 @Dynatrace
Example from Server-Side Diagnostics
526s to render that
report
1 SQL running
210s!
Lots of time spent
in logging to Log4J
Lots of time spent
in rendering
63. 63 @Dynatrace
Your Benefits
• Free Performance Review
• Extended Dynatrace License
“Share Your PurePath”
bit.ly/sharepurepath
My Benefits
• More blog material for next year
• Gratification that I could help you
65. 65 @Dynatrace
Andreas Grabner
Performance Advocate @ Dynatrace
andreas.grabner@dynatrace.com
@grabnerandi
Darren Edwards
IT Service Manager @ esure
Darren.Edwards@esure.com
Darren Edwards
IT Service Manager @ esure
Darren.Edwards@esure.com
Hinweis der Redaktion
The Web Performance Optimization (WPO) movement made a huge impact in optimizing the web apps we build. But in 2014 this is no longer enough. With Mobile Apps and Applications that rely on backend services, 3rd party services, distributed across the globe in physical or virtual data centers requires developers to not just focus on web performance in their browser but end-to-end performance of their application
28 Years in IT moving from Development through tool selection and support, architecture, Release Mgt into Service Delivery.
Financial services based.
Passionate about delivery of reliable and performant services to customers
My professional background: worked in performance for past 15 years. Segue, Borland, dynaTrace, Compuware, Dynatrace
By now there are many great free tools out there: dynaTrace AJAX Edition, speedtracer, yslow, pagespeed, … - all do a great job in analyzing frontend performance – and based on Steve Souders that’s where 80% of your performance is
Which is true for most landing pages of websites and those that have been built leveraging the browser as an application platform. BUT – it is not true for many critical pages or backend heavy applications such as eCommerce checkouts, …
Some critical steps in an application are just very heavy on the server side – such as generating reports, getting your user history, order status, notifications, …
In this example we talk about an online room reservation system where generating the overview of available meeting rooms takes between 60 and 120s. The problem however lies in the backend implementation due to some bad implementations causing thousands of SQL queries to be executed and too much data loaded into memory causing high GC. Rendering that page in the browser only takes a fraction of the total time