Hotmail’s Performance Tuning Best Practices Aladdin A. Nassar Hotmail’s Performance Champion Microsoft Lessons Learned We cannot defy the laws of physics The truth is always out.
Download ReportTranscript Hotmail’s Performance Tuning Best Practices Aladdin A. Nassar Hotmail’s Performance Champion Microsoft Lessons Learned We cannot defy the laws of physics The truth is always out.
Hotmail’s Performance Tuning Best Practices Aladdin A. Nassar Hotmail’s Performance Champion Microsoft Lessons Learned We cannot defy the laws of physics The truth is always out there History is bound to repeat itself if we don’t learn from it Newer technologies ~ bigger guns to shoot ourselves with Performance is like beauty – it only shines from the inside Performance effects are asymmetric Customers do not care what we think our performance is We will always find ways to outgrow our capacity It is very easy to lose the forest in the trees Some of the best performance gains are the simplest of all Laws of Physics The more bytes you transfer, the longer they take to load HTML is much faster & more resilient than Javascript Web Applications are thin applications WW performance is bound by network latency TCP packets cannot travel faster than the speed of light Performance Tuning is an over-constrained problem Asymmetric bandwidths can bottleneck upstream Fewer bigger files download faster than many small files Page Load Time (PLT) Components Client Rendering Client Rendering - Page Weight Up/Down (KB) Client Rendering Network - Server vs. Client side Rendering - End-user’s System Config - Bandwidth (Kbps) Network Network Server Rendering - Network Latency (ms) - Packet Loss (%) Server Rendering Data Center 1st Mile Midgress Backbone Server Rendering Last Mile - SW & HW Architecture 8,000 x TCP Win (KB) Max eBW = 1.5 x Network Latency (ms) Theoretical BW TCP Win is defined by the Receiver TCP Win (Wireless) = 8 KB TCP Win (Win XP) = 16 KB Latency Bound eBW Cap Packet Loss BW Bound Performance Best Practices Identify your performance bottlenecks & critical paths Trim down your page weights up/downstream Move your contents closer to your customers Edge Caching Edge Computing Network Routing Optimization Geohosting Instrument performance across your entire network Build a closed feedback loop – fine tune, measure, fine tune, measure, etc. Trim Page Weights (Downstream) Trim down your features to the core minimum Render most of your content on the server side Trim down your image sizes by: Minimizing their usage Image Clustering Reducing their color palettes Delay load, slow down, cap and monitor ads Use Cache Control, Expiration Dates & eTags effectively Group your static content into fewer bigger files Optimize between inline and stand-alone JS & CSS Full Postbacks vs. atomic updates using Ajax Trim Page Weights (Upstream) Down/up connection speeds ~ 5 which means your bottleneck is most likely upstream Trim down your cookies by: Eliminating them altogether by moving your static contents to a different domain Optimizing their use Moving them away from your root domain and root path “/” Compressing them Grouping multiple smaller files into fewer bigger ones (image clustering) Trim down the number of requests and redirects (round trips) Bandwidth Efficiency Identify your critical path Spread your downloads across multiple hostnames Hostname spreading can hurt narrowband On Demand / JIT downloading Control the sequencing of your downloads Unblock & defer your Javascript Minimize the browser’s “think time” Use appropriate tools to analyze bandwidth efficiency The Big Picture Outgrowing Moore’s Law Performance Based Design (PBD) Effect of Ads on Performance Relative Performance Index (RPI) Performance Consortium PLT1 vs. PLT2 Myths Performance vs. Capacity Planning Q&A Performance Tools Fiddler HTTP Watch HTTP Analyzer WANSim NetMon + Add-Ons RTA / VRTA / BWA Gomez Backbone/Last Mile Keynote Backbone In-House Automation Tools JS Instrumentation Packets Tahoe Packets Reno Fast Retransmit Fast Recovery Round Trips Reference: Akamai Relative Weight Relative Performance Index (RPI) 100% RPI = the “Dow Jones” of Client Performance It is a method not tied to any data source 50% T = Tolerable Level F = Frustration Level 0% T PLT (sec) F T/F Levels: - Defined by Usability Studies + Competitors - Defined per transaction - Function of Page Content Value G% Page Views RPI = [0 – 100%] RPI = G + 0.5 Y % Y% R% Ads Refresh Rates Performance Revenues Target ~ 2 clicks / 60 sec) Today = 1 click / 2 sec) Ads Refresh Rates (x Click / y Sec) Outgrowing Moore's Law Ads > Application The End