Drupal commerce performance profiling by load testing a the kickstarter drupal commerce site on an AWS instance and comparing how the site performa after several well known performance tuning enhancements are applied. We try to compare performance improvements after druapl cache, aggregation, varnish, and nginx reverse proxy.
This presentation was first given at Drupal Mid Camp in Chicago. We used loadstorm and new relic to analyze results.
2. Objectives
•Stress Test Drupal Commerce on a standard server
•Make a performance improvement
•Measure results & Repeat
•How to look at stress test results
•Which improvements made the biggest impact
What You’ll Learn
7. Why care about performance?
Google Blog: 2011 – “We encourage you to start looking at your site’s speed— not only
to improve your ranking in search engines, but also to improve everyone’s
experience on the Internet. “
• Time = Money…
• Speed = Money…
• Slower Page load = Less Money
8. HTML DELAY EXPERIMENT
Determine impact of server delays
GOAL
Delay before sending HTML page
Different experiments with different delays
Small % of traffic
Monitor negative impact
METHODOLOGY
9.
10.
11. •LoadStorm.com is a load testing tool for websites
• Test scenarios such as login, e-commerce
• No scripting language needed
• Run large tests up to 500,000 concurrent users
• No download, no install, no servers to buy
12. Waterfall diagrams
•X = Time
•Y = Number of objects on
page
•Y(1) = HTTP Request –
rest of objects are
elements of the page,
images, CSS and js files,
etc, etc.
•Time to load all elements
13. •DNS Lookup – time it takes for browser to find the server
•Initial Connection – three way handshake, hard to control
•Time to First Byte – server wait time
•Content Download – how long it takes to transfer the
data from server to browser
14. • Back End
• Front End
• Render Start
• Render complete
17. Test Plan
Script #1 Activity (User browses anonymously) (11%)
1. VUser hits the homepage
2. VUser goes to category #1
3. VUser goes to product #1 in category #1
4. VUser goes to category #2
5. VUser goes to product #2 in category #2
6. VUser goes to category #3
7. VUser goes to product #3 in category #3
8. End of session
Script #2 Activity (User browses after logging in) (10%)
1. VUser hits the homepage
2. VUser logs into an existing customer account
3. VUser goes to category #1
4. VUser goes to product #1 in category #1
5. VUser goes to category #2
6. VUser goes to product #2 in category #2
7. VUser goes to category #3
8. VUser goes to product #3 in category #3
9. VUser logs out
10. End of session
18. Test Plan
Script #3 Activity (User abandons a cart, requires login) (68% [2])
1. VUser hits homepage
2. VUser logs into an existing customer account
3. VUser goes to category #1
4. VUser goes to product #2 in category #1
5. VUser adds that product to her cart
6. VUser removes that product from her cart
7. VUser logs out
8. End of session
Script #4 Activity (User purchases a product, requires login) (3% [1])
1. VUser hits homepage
2. VUser logs into an existing customer account
3. VUser goes to category #1
4. VUser goes to product #3 in category #1
5. VUser adds that product to her cart
6. VUser reviews cart
7. VUser goes through the checkout process
8. VUser receives order confirmation
9. VUser logs out
10. End of session
What is Load Storm:LoadStorm has been awarded and recognized as the Best Load Testing Tool byWebhostingsearch.com, the leading provider of best quality web hostingreviews on the Internet.“LoadStorm™ is a web-based load testing tool for simulating what users do with a web site or web application. You use it to build tests that send requests to your server in the same way that a user's browser sends requests to your server. But these tests are executed by our automated systems rather than by a user, so they can be done repeatedly and in large numbers simultaneously. They can also be built using our tool in such a way as to simulate a large number of different users with different tasks to perform.
The OptionIt home page has 44 objects on it
We will be load testing the same site installed on four instances: - Amazon small - Amazon mediumVersusRack Space Cloud 1024MB RamRack Space Cloud 2048MB Ram
We will be load testing the same site installed on four instances: - Amazon small - Amazon mediumVersusRack Space Cloud 1024MB RamRack Space Cloud 2048MB Ram
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance
Stress Test results on a drupal site on Amazon small instance