Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to Increase Online Sales - PowerPoint PPT Presentation

About This Presentation
Title:

Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to Increase Online Sales

Description:

Learn how to optimize Magento to increase online profits – PowerPoint PPT presentation

Number of Views:72
Slides: 53
Provided by: Zerolag
Category: Other

less

Transcript and Presenter's Notes

Title: Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to Increase Online Sales


1
(No Transcript)
2
How to Optimize Magento Hostingto Increase
Online Sales
The Devil is in the Details
3
Introduction
4
Outline
  1. Case study Zarpo.com solution engineering
  2. Load testing results lab vs. real-world testing
  3. Best practices for Magento-optimized development
  4. The link between performance and conversion

5
Case Study Mystery of the Locked DB
  • Zarpo.com is the first and largest flash sale
    travel website in Latin America
  • Based in Sao Paulo Brazil
  • Zarpos objective is to provide the best online
    user experience to demanding Latin American
    travelers
  • Running a highly customized deployment of Magento
    Enterprise Edition

6
Case Study Mystery of the Locked DB
  • Monday, January 13, 2014 Catastrophic Event
  • 1237 PM Critical ticket opened with ZeroLag
    Support Zarpo is badly down
  • 1248 PM Initial trouble analysis complete
    MySQL crash
  • Extremely high volume of queries locked up the DB
  • 104 PM ZeroLag engineer kills queries and
    restarts SQL site back online
  • 122 PM Queries continue to pound SQL for
    reasons unknown. ZeroLag staff keeps SQL online

7
Case Study Mystery of the Locked DB
  • Monday, January 13, 2014
  • 427 PM Root cause deep dive begins
  • Team is assembled DBA and senior Magento / Linux
    engineers

8
Case Study Mystery of the Locked DB
  • Monday, January 13, 2014
  • 500 PM DB diagnostics and configuration
    analysis begins
  • 618 PM Test environment is set up to focus on
    DB cache under load

9
Case Study Mystery of the Locked DB
  • Tuesday, January 14, 2014
  • 815 AM Root cause identified
  • An AJAX call checks a custom cache
  • When a travel deal gets sold or updated the cache
    is cleared and the next AJAX call kicks off a
    recache
  • If a cache has not been built by the time next
    AJAX call happens, another cache rebuild gets
    launched
  • Zarpo had recently released its mobile
    application and usage increased 800 causing a
    massive log jam of cache rebuilds

10
Case Study Mystery of the Locked DB
  • Tuesday, January 14, 2014
  • 918 AM Solution engineering begins

11
Case Study Mystery of the Locked DB
  • Tuesday, January 14, 2014
  • Developer briefing ZeroLag recommends solution
  • Add Ajax code that blocks all rebuilds if a
    rebuild is already in progress
  • The Ajax call puts up a loading new deals clock
    for users during cache rebuilds
  • As an added benefit, the clock contributes to the
    user experience by helping build customer
    anticipation for deals, consistent with the flash
    sale business model

12
Case Study Mystery of the Locked DB
  • Tuesday, January 14, 2014
  • Zarpo names the successful solution The McManus
    Magic Shield

13
Case Study Mystery of the Locked DB
  • Skype Room Chat Report from Zarpo

1/24/14, 94145 AM Alexis Manach excellent
news 1/24/14, 94156 AM Alexis Manach the
McManus magic shield is on.. 1/24/14, 94209
AM Alexis Manach and working beautifully..
1/24/14, 94243 AM Alexis Manach this
morning i triggered this big event recache with
over 550 concurrent users online and site did not
even move a little bit.
14
About ZeroLag
  • Get the power of 11
  • Magento Platinum Hosting Partner
  • Founded April 1999
  • Founder, CEO Greg Strelzoff
  • 80 Employees
  • We never throw developers under the bus!

15
Load Testing Results
  • 02

16
Purpose
  • To observe Magento performance under varying
    store sizes, cache configurations, and traffic
    levels
  • Directly relates to questions we get asked on a
    weekly basis during the pre-sale process

17
Lab and store test setup
  • Environment single load test server
  • Tool Gatling
  • Method Blind test (unbiased)
  • Tiers Single web DB, Dual web DB
  • Code stock Magento EE 1.13, no plugins
  • Test grid
  • Cache Memcached, Redis
  • Store sizes 1K, 100K, 500K products
  • Traffic 100, 200, 300, 400, 500 concurrent
    browsers
  • Success rate 99 to consider valid test

18
Environment Response Time vs. Traffic

19
Environment Response Time vs. Traffic
  • At 100 concurrent browsers, the smaller
    environment performed best
  • It depends on where the bottlenecks are!
  • At low levels, CPU is not strained
  • No benefit of extra CPU power from two web
    servers
  • 50ms overhead due to shared PHP sessions
    (Memcached) and file system (NFS)

20
Cache Response Time vs. Traffic

Redis
Memcached
21
Lab Load Test Recap
  • Environment sizing is important to performance
  • Stock Magento is fast and scalable when deployed
    with best practices
  • Memcached and Redis have similar performance
    profiles when under load
  • This establishes a baseline on which we can
    compare some real-world sites

22
Real-World Testing
  • Selected 5 representative Magento sites
  • Tested during off-peak hours
  • Abort testing at gt1 failure rate
  • Generate Gatling install script for each site
  • Same testing procedure as Lab tests

23
Client Response Time vs. Traffic

24
Client Response Time vs. Traffic
  • Performs worse than the baseline
  • Enabled Enterprise Edition Full Page Cache, but
    not fully utilized
  • Replaced stock Magento frontend with Expression
    Engine

25
Client Response Time vs. Traffic
  • Performs better than the baseline
  • Enabled a number of custom plugins
  • Using Varnish and third-party plugin

www
26
Client Response Time vs. Traffic
  • Performs better than the baseline
  • Front-end designed for Magento
  • Using Enterprise Edition FPC
  • Using local HTTP Accelerator

27
Client Response Time vs. Traffic
  • Best scalability of all tested sites
  • Most consistent performance
  • Front-end designed for Magento
  • Using Enterprise Edition FPC
  • Using cloud-based HTTP accelerator

28
Client Response Time vs. Traffic

29
Client Response Time vs. Traffic
  • Great single-user experience
  • Very poor scalability
  • A large number of complex plugins
  • Significant development issues
  • Multiple developers working on the site
  • File-based Magento fast cache
  • DB-based PHP sessions
  • FPC incompatible with plugins/code
  • CPU intensive site

30
Real-World Load Test Recap
  • Code quality is the single greatest factor in
    determining performance of a Magento site
  • Frontend
  • Plugins
  • Custom Code
  • FPC, HTTP accelerators, clustering, and in-memory
    fast cache are excellent ways to improve
    scalability

31
Best Practices inMagento Development
  • 03

32
Common Bottlenecks
  • Poorly Optimized Frontend
  • Making performance-impacting changes
  • Very large images
  • Hundreds of very small images
  • Uncombined JavaScript/CSS
  • JavaScript/CSS out of order
  • No browser caching
  • Performance-intensive uncached page elements

33
Best Practices
  • Reduce the number of HTTP requests, limit
    external requests
  • Base install of Magento has lt 40 calls
  • Most Magento sites I have seen 100 calls
  • Compress files
  • JavaScript, images, HTML, CSS, etc.
  • Images should not be over 50KB
  • Minify JS
  • Removes unnecessary spaces, tabs, and other
    selected
    characters
  • Reduces overall size of the file
  • Combine or merge JS and CSS

34
Best Practices, cont.
  • Load CSS first, JavaScript last
  • Page appears to be loaded on the users machine
    while JavaScript is catching up and loading in
    the background
  • Add expiration headers for static graphic files
    (Browser cache)
  • 80 of page load time is downloading scripts,
    images, and CSS, which normally dont change very
    often
  • Use CSS sprites
  • Can cut page load time by reducing the amount of
    HTTP requests your page makes to the server,
    through the consolidation of your CSS background
    images

35
Best Practices, cont.
  • Avoid redirects
  • Site loads a header with a blank page, then loads
    new page
  • Increases the time it takes to get the user to
    the page they
    actually want
  • Use cache very aggressively
  • Including Magento FPC if on Enterprise Edition
  • Use CDN
  • And even multiple zones for parallel downloads

36
A Glimpse into the Future
  • 04

37
HipHop Virtual Machine
  • HipHop for PHP a series of execution engines
    and improvements created by Facebook
  • Original motivation save server resources
    given large PHP codebase of
    facebook.com
  • As development progressed realization that
    HipHop could substantially
    increase the speed of PHP
    applications in general
  • Current version open-sourced in late 2011
  • Known as HHVM (HipHop Virtual Machine)

38
Case Study Magento and HHVM
  • Car Part Kings
  • Wanted to run HHVM and fpm on the
    same production site to compare
    performance
  • How do you do that?
  • Query parameter strings (?h1)

39
What does that look like?
  • fpm
  • carpartkings.com/mann-cabin-air-filter-cu-2949-2.h
    tml
  • HHVM
  • carpartkings.com/mann-cabin-air-filter-cu-2949-2.h
    tml?h1

40
How did it perform?
  • fpm page load time 2.16 seconds
  • HHVM page load time 1.14 seconds
  • On the first day, conversion increased by
    500 over the similar fpm pages
  • Facebook has seen increases in web
    page generation throughput by factors of
    up to 6x vs. Zend PHP

41
Is HHVM ready for primetime?
  • Not quite yet
  • Car Part Kings, ZeroLag and the HHVM consultant
    got it working
  • But it needed to be restarted 4 to 5 times a day
  • Currently deactivated
  • HHVM consultant working on a solution to
    eliminate crashes

42
The Link BetweenPerformance and Conversion
  • 05

43
How performance impacts your business
  • Why is performance critical?
  • Studies show users are more likely to convert on
    a faster site
  • Slow sites subconsciously erode user confidence
  • User Experience is everything and there are two
    components
  • Visible user experience - look and feel of the
    site along with information architecture
  • Invisible user experience - the passage of time
    itself
  • Front-end innovation combined with back-end
    performance optimization delivers the best User
    Experience possible

44
How performance impacts your business
  • Magento performance can set your revenue on fire

45
How performance impacts your business
  • But slowing down suddenly can cost you dearly!

46
How performance impacts your business
  • Consciously or not, visitors expect pages to load
    in two seconds or less
  • A one-second delay reduces conversions by 7
  • Even seemingly tolerable delays can add up to
    substantial lost revenue
  • For example, a site which sells 100,000 per day
    can lose as much as 2.5 million annually for
    every extra second of page load delay
  • Small changes in site speed can have a huge
    impact on e-commerce sales

According to research conducted by Akamai and
Gomez Advisors (now Compuware)
47
Relationship of load time and bounce rate

Lost Opportunity
48
Evaluating your site
  • Use free tools to analyze your Magento sites
  • Knowing is half the battle
  • WebPagetest (webpagetest.org)
  • TTFB, image compression, caching, CDN
  • Compare web sites page load times

49
Evaluating your site
  • Use free tools to analyze your Magento sites
  • Knowing is half the battle
  • Gtmetrix (gtmetrix.com)
  • Breakdown 25 page speed components
  • Provides performance improvement recommendations
  • Also, Magento-specific recommendations

50
Evaluating your site
  • Use free tools to analyze your Magento sites
  • Knowing is half the battle
  • YSlow (yslow.org)
  • Waterfall chart shows each call to build the
    page, with associated load time
  • Open Source also available as browser plugin for
    Chrome, Firefox, more

51
Leave this room with a plan
  • Choose a hosting company that you think will best
    support your business
  • Implement a multi-layered strategy for
    optimization and caching
  • Communicate with your hosting company
    and your solution partner work together
    to improve performance
  • Remember that your website is a tool, not a canvas

52
Thank you!
ZeroLag.com 877-ZERO-LAG
Write a Comment
User Comments (0)
About PowerShow.com