How to Optimize Magento Hosting to Increase Online Sales

Category: Others/ Misc

Presentation Description | Learn how to optimize Magento to increase online profits


Presentation Transcript

slide 2:

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

slide 3:

Introduction Will Bernstein Executive Vice President Sales and Marketing

slide 4:

Outline 1. Case study: 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

slide 5:

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

slide 6:

Case Study: Mystery of the Locked DB Monday January 13 2014 – Catastrophic Event • 12:37 PM: Critical ticket opened with ZeroLag Support – “Zarpo is badly down” • 12:48 PM: Initial trouble analysis complete – MySQL crash – Extremely high volume of queries locked up the DB • 1:04 PM: ZeroLag engineer kills queries and restarts SQL – site back online • 1:22 PM: Queries continue to pound SQL for reasons unknown. ZeroLag staff keeps SQL online

slide 7:

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

slide 8:

Case Study: Mystery of the Locked DB Monday January 13 2014 • 5:00 PM: DB diagnostics and configuration analysis begins • 6:18 PM: Test environment is set up to focus on DB cache under load

slide 9:

Case Study: Mystery of the Locked DB Tuesday January 14 2014 • 8:15 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

slide 10:

Case Study: Mystery of the Locked DB Tuesday January 14 2014 • 9:18 AM: Solution engineering begins

slide 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

slide 12:

Case Study: Mystery of the Locked DB Tuesday January 14 2014 Zarpo names the successful solution “The McManus Magic Shield”

slide 13:

Case Study: Mystery of the Locked DB Skype Room Chat Report from Zarpo 1/24/14 9:41:45 AM Alexis Manach: excellent news 1/24/14 9:41:56 AM Alexis Manach: the McManus magic shield is on.. 1/24/14 9:42:09 AM Alexis Manach: and working beautifully.. 1/24/14 9:42:43 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.

slide 14:

About ZeroLag Get the power of 1:1 • Magento Platinum Hosting Partner • Founded April 1999 • Founder CEO Greg Strelzoff • 80 Employees • We never throw developers under the bus

slide 15:

Load Testing Results 02 Cameron King Linux Manager

slide 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

slide 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

slide 18:

Environment Response Time vs. Traffic www db www db www

slide 19:

At 100 concurrent browsers the “smaller” environment performed best… Environment Response Time vs. Traffic 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

slide 20:

Cache Response Time vs. Traffic Redis Memcached

slide 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

slide 22:

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

slide 23:

Client Response Time vs. Traffic

slide 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 www www db

slide 25:

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

slide 26:

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

slide 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 www www db

slide 28:

Client Response Time vs. Traffic

slide 29:

Client Response Time vs. Traffic www db • 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

slide 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

slide 31:

Best Practices in Magento Development 03 Doug Goldberg Vice President Magento Solutions

slide 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

slide 33:

Best Practices • Reduce the number of HTTP requests limit external requests – Base install of Magento has 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

slide 34:

Best Practices cont. • Load CSS first JavaScript last – Page appears to be loaded on the user’s 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 don’t 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

slide 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

slide 36:

A Glimpse into the Future 04

slide 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 – 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

slide 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

slide 39:

What does that look like • fpm – • HHVM –

slide 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

slide 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

slide 42:

The Link Between Performance and Conversion 05 Aaron Koch Vice President Direct Sales

slide 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

slide 44:

How performance impacts your business Magento performance can set your revenue on fire…

slide 45:

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

slide 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 100000 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

slide 47:

Relationship of load time and bounce rate Lost Opportunity

slide 48:

Evaluating your site Use free tools to analyze your Magento sites • Knowing is half the battle WebPagetest • TTFB image compression caching CDN • Compare web sites’ page load times

slide 49:

Evaluating your site Use free tools to analyze your Magento sites • Knowing is half the battle Gtmetrix • Breakdown 25+ page speed components • Provides performance improvement recommendations • Also Magento-specific recommendations

slide 50:

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

slide 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

slide 52:

Thank you | 877-ZERO-LAG