SlideShare una empresa de Scribd logo
1 de 26
The Scaling Habits of ASP.NET
         Applications
        Richard Campbell
Richard Campbell
• Background
  – After thirty years, done every job in the computer
    industry you’ve ever heard of
• Currently
  – Co-Founder of Strangeloop Networks
  – Co-Host of .NET Rocks!
  – Host of RunAs Radio
50 000 foot view
                                                         Business Success

                                           Business
                                           Traction
                            Make it Work
                            Right
Page Views




             Make it Work




              Version 1      Version 2       Version 3     Version N
                                         Time
What are we measuring?
• Capacity
   – Total number of known users
   – Number of active users (aka active sessions)
   – Number of concurrent users (aka concurrent requests)
• Throughput
   – Page Views per Month
   – Requests per Second
   – Transactions per Second
• Performance
   – Load time in milliseconds
   – Time to first byte (TTFB), Time to last byte (TTLB)
The Anatomy of a Web Request
Performance Equation


       Legend:

        R:                                    Response time

        RTT:                                  Round Trip Time

        App Turns:                            Http Requests

        Concurrent Requests:                  # server sockets open by browser

        Cs:                                   Server Side Compute time

        Cc:                                   Client Compute time
Source: Field Guide to Application Delivery Systems, by Peter Sevcik and Rebecca Wetzel, NetForecast
Where do the numbers come from?



                                                                                                                 Server Code Timing: 0.8 secs



                          4.5 sec


                                                                                                                    Client Code Timing: 1.2 secs


                                       http://www.speedtest.net/




                                                                   Ping statistics for 209.162.190.188:
                                                                       Packets: Sent = 4, Received = 4, Lost = 0 (0%
                                                                   loss),
                                                                   Approximate round trip times in milli-seconds:
                                                                       Minimum = 80ms, Maximum = 92ms, Average = 85ms

http://www.websiteoptimization.com/services/analyze/
Performance Spreadsheet



                               Factor 1       Factor 2              Factor 3               Time
P1 = Payload/Bandwidth          208 KB Payload 717 KB/Sec Bandwidth                          0.29 seconds
P2 = AppTurns * Roundtrip Time   51 Appturns     85 ms Roundtrip     2 Concurrent Requests 2.168 seconds
P3 = Compute Time at Server     0.8 Seconds                                                   0.8 seconds
P4 = Compute Time at Client     1.2 Seconds                                                   1.2 seconds
                                                                                           4.458 seconds
Version 1: Make it work
• Get Version 1 out the door
• Define the initial hardware platform
• Meet the launch date




          The only one who likes your app is you
Scaling Habits
•   10 to 50 requests/second
•   5 to 15 users
•   15 active sessions at peak
•   Problems with performance on areas of the
    site
    – Multi-User Issues
    – Complex input screens
    – Reports
Solutions for Version 1
• Fix logical scaling problems
  – Multi-user data access
• Get user feedback
  – Humiliating but useful
  – Fix the actual user pains
  – Watch your app in use
Version 2: Make it work right

• Focus on features
  – What is missing
• Bug Fixing
• Rethink the App or UI
  – Some new directions
• Larger and more diverse users
  base
               Now your boss likes your app too
Scaling Habits
•   50 to 100 requests/second
•   15 to 50 users (5-10 are remote!)
•   30 active sessions at peak
•   Problems
    – Fights with IT over remote access
    – Reach the single server limit
       • What does this look like?
What does it really look like?
•   Memory consumption above 80%
•   Processor consumption at 100% all the time
•   Request queues start to grow out of hand
•   Page timeouts (server not available)
•   Sessions get lost
•   People can’t finish their work!
Solutions for Version 2
• More Hardware
  – Dedicated web server
  – Separate database server (probably shared)
• Find the low hanging fruit
  – Fix querying
  – Get your page size under control
Version 3: Business Traction

• Weighing business priorities
  – Formal IT transition point
  – There is budget
• Scaling versus Reliability
  – Which one is more important
• 99% verses 100% up time
  – Cost of Reliability
                    People you don’t know like your app
Scaling Habits
•   300 to 1000 requests/second
•   100 to 500 users
•   300 active sessions at peak
•   Problems
    – Performance is now front and center
    – Consequences of downtime are now significant
Network vs. Development IQ

• Network IQ Test               • Development IQ Test
   – Explain each of the           – Explain the network
     Web.config file                 diagram of your
   – Explain the load-               application
     balancing scheme              – Explain how to access the
     required by the app             production log files
   – Explain the bottlenecks       – Explain the redundancy
     of the production system        model of the production
                                     system
Solutions for Version 3
• Move to multiple web servers: You need a load balancer
• More bandwidth: Move to a hosting facility
• Get methodical, use profiling
   – Red Gate Ants, SQL Profiler, Web Site Optimizer
• Get the facts on the problem areas
   – Work methodically and for the business on addressing
     slowest lines of code
   – Focus on understanding what the right architecture is
     rather than ad-hoc architecting
• Let the caching begin!
Version N: Business Success

• IT costs now out weigh the software development
• Getting new features to production takes months
   – Or Cowboy it! (which always happens)
• IT and Dev process is a focus – Tech Politics




                     It’s no longer your app
Scaling Habits
•   500+ requests/second
•   5000+ users
•   3000 active sessions at peak
•   Problems
    – Running out of memory with inproc sessions
    – Worker process recycling
    – Cache Coherency
    – Session Management
A Word About Load-balancing

                                           Sticky vs. Round
                      Load Balancer         Robin vs. WMI
                        Virtual IP



Web Server 1   Web Server 2     Web Server 3    Web Server 4




                      Persistent Data
                        Session?
Performance and Scale
• Now the problem is that scale and
  performance are intertwined
  – A new class of ‘timing’ problem shows up under
    load (and are almost impossible to reproduce
    outside of production)
  – Caches are flushed more than expected
     • And performance plummets
Solutions for Version N
• Your architecture is now hardware and software
   – Use third party accelerators
   – Create a performance team and focus on best practices
   – Use content routing
      • Separate and pre-generate all static resources
• Cache, cache, and more cache
   – Output Cache – All static pages are cached
   – Response.Cache – Look for database gets with few updates
Summary
• Focus on actual user performance problems
  – What is reality?
• Start with low hanging fruit
• Use methodical, empirical performance
  improvement
• At large scale, the network is the computer

Más contenido relacionado

La actualidad más candente

Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Keith Brooks
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like thatSharon James
 
URP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to KnowURP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to KnowTodd Palino
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecturethlias
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016panagenda
 
Netdruid Presentation
Netdruid PresentationNetdruid Presentation
Netdruid Presentationdineshmisal
 
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...Benedek Menesi
 
02 2017 emea_roadshow_milan_ha
02 2017 emea_roadshow_milan_ha02 2017 emea_roadshow_milan_ha
02 2017 emea_roadshow_milan_hamlraviol
 
Resilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes BackResilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes BackC4Media
 
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the ServerXBOSoft
 
Transactional Streaming: If you can compute it, you can probably stream it.
Transactional Streaming: If you can compute it, you can probably stream it.Transactional Streaming: If you can compute it, you can probably stream it.
Transactional Streaming: If you can compute it, you can probably stream it.jhugg
 
GWAVACon 2013: Novell Service Desk Design, Deployment
GWAVACon 2013: Novell Service Desk Design, DeploymentGWAVACon 2013: Novell Service Desk Design, Deployment
GWAVACon 2013: Novell Service Desk Design, DeploymentGWAVA
 
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scale
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scaleHow LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scale
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scaleLinkedIn
 
SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016David Hablewitz
 
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, OracleIssues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oraclemfrancis
 
WAMP as a platform for composite SOA applications and its implementation on Lua
WAMP as a platform for composite SOA applications and its implementation on LuaWAMP as a platform for composite SOA applications and its implementation on Lua
WAMP as a platform for composite SOA applications and its implementation on LuaKonstantin Burkalev
 
Managing Remote Teams
Managing Remote TeamsManaging Remote Teams
Managing Remote TeamsDell World
 
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Daniel Meyer
 

La actualidad más candente (20)

Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like that
 
URP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to KnowURP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to Know
 
Ap61
Ap61Ap61
Ap61
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecture
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
 
Netdruid Presentation
Netdruid PresentationNetdruid Presentation
Netdruid Presentation
 
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...
IBM ConnectED 2015 BP110: Mastering Your Logs, Everything You Should Know abo...
 
02 2017 emea_roadshow_milan_ha
02 2017 emea_roadshow_milan_ha02 2017 emea_roadshow_milan_ha
02 2017 emea_roadshow_milan_ha
 
Resilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes BackResilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes Back
 
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the Server
 
Transactional Streaming: If you can compute it, you can probably stream it.
Transactional Streaming: If you can compute it, you can probably stream it.Transactional Streaming: If you can compute it, you can probably stream it.
Transactional Streaming: If you can compute it, you can probably stream it.
 
GWAVACon 2013: Novell Service Desk Design, Deployment
GWAVACon 2013: Novell Service Desk Design, DeploymentGWAVACon 2013: Novell Service Desk Design, Deployment
GWAVACon 2013: Novell Service Desk Design, Deployment
 
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scale
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scaleHow LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scale
How LinkedIn uses memcached, a spoonful of SOA, and a sprinkle of SQL to scale
 
SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016
 
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, OracleIssues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
 
WAMP as a platform for composite SOA applications and its implementation on Lua
WAMP as a platform for composite SOA applications and its implementation on LuaWAMP as a platform for composite SOA applications and its implementation on Lua
WAMP as a platform for composite SOA applications and its implementation on Lua
 
Five steps perform_2013
Five steps perform_2013Five steps perform_2013
Five steps perform_2013
 
Managing Remote Teams
Managing Remote TeamsManaging Remote Teams
Managing Remote Teams
 
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
 

Destacado

Healthstory Enabling The Emr Dictation To Clinical Data
Healthstory Enabling The Emr   Dictation To Clinical DataHealthstory Enabling The Emr   Dictation To Clinical Data
Healthstory Enabling The Emr Dictation To Clinical DataNick van Terheyden
 
Daniel's Journal
Daniel's JournalDaniel's Journal
Daniel's Journalzzzdbsgh
 
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"Eugenio Agnello
 
Analisi Sismica Secondo Le N.T.C.2008
Analisi Sismica Secondo Le N.T.C.2008Analisi Sismica Secondo Le N.T.C.2008
Analisi Sismica Secondo Le N.T.C.2008Eugenio Agnello
 
A C H P E R
A C H P E RA C H P E R
A C H P E Rmrrobbo
 
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkAdvice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkBrian Link
 
Closing the talent gap teachers
Closing the talent gap teachersClosing the talent gap teachers
Closing the talent gap teachersRaimundo Rubio
 
A Solver Manager for energy systems planning within a Stochastic Optimization...
A Solver Manager for energy systems planning within a Stochastic Optimization...A Solver Manager for energy systems planning within a Stochastic Optimization...
A Solver Manager for energy systems planning within a Stochastic Optimization...Emilio L. Cano
 
Ontological Conjunctive Query Answering over Large Knowledge Bases
Ontological Conjunctive Query Answering over Large Knowledge BasesOntological Conjunctive Query Answering over Large Knowledge Bases
Ontological Conjunctive Query Answering over Large Knowledge BasesUniversity of New South Wales
 
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008jackthur
 
Gray Routes Company Profile
Gray Routes Company ProfileGray Routes Company Profile
Gray Routes Company ProfileSoubhagya Sahoo
 
Jackthurston re publica
Jackthurston re publicaJackthurston re publica
Jackthurston re publicajackthur
 
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il Vino
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il VinoVota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il Vino
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il VinoEugenio Agnello
 

Destacado (20)

Healthstory Enabling The Emr Dictation To Clinical Data
Healthstory Enabling The Emr   Dictation To Clinical DataHealthstory Enabling The Emr   Dictation To Clinical Data
Healthstory Enabling The Emr Dictation To Clinical Data
 
Agamenón y Clitemnestra
Agamenón y ClitemnestraAgamenón y Clitemnestra
Agamenón y Clitemnestra
 
Daniel's Journal
Daniel's JournalDaniel's Journal
Daniel's Journal
 
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"
CORSO TECNICO: “IL SOLARE TERMICO: TEORIA E ASPETTI APPLICATIVI"
 
Health Story RSNA 2011 Update
Health Story RSNA 2011 UpdateHealth Story RSNA 2011 Update
Health Story RSNA 2011 Update
 
Declarative analysis of noisy information networks
Declarative analysis of noisy information networksDeclarative analysis of noisy information networks
Declarative analysis of noisy information networks
 
Gremlin
Gremlin Gremlin
Gremlin
 
Analisi Sismica Secondo Le N.T.C.2008
Analisi Sismica Secondo Le N.T.C.2008Analisi Sismica Secondo Le N.T.C.2008
Analisi Sismica Secondo Le N.T.C.2008
 
Software evaluation
Software evaluationSoftware evaluation
Software evaluation
 
Real grade survey
Real grade surveyReal grade survey
Real grade survey
 
A C H P E R
A C H P E RA C H P E R
A C H P E R
 
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkAdvice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
 
Norme Tecniche 2008
Norme Tecniche 2008Norme Tecniche 2008
Norme Tecniche 2008
 
Closing the talent gap teachers
Closing the talent gap teachersClosing the talent gap teachers
Closing the talent gap teachers
 
A Solver Manager for energy systems planning within a Stochastic Optimization...
A Solver Manager for energy systems planning within a Stochastic Optimization...A Solver Manager for energy systems planning within a Stochastic Optimization...
A Solver Manager for energy systems planning within a Stochastic Optimization...
 
Ontological Conjunctive Query Answering over Large Knowledge Bases
Ontological Conjunctive Query Answering over Large Knowledge BasesOntological Conjunctive Query Answering over Large Knowledge Bases
Ontological Conjunctive Query Answering over Large Knowledge Bases
 
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008
Jack Thurston talk at EU budget and CAP conference: Prague, 11 December 2008
 
Gray Routes Company Profile
Gray Routes Company ProfileGray Routes Company Profile
Gray Routes Company Profile
 
Jackthurston re publica
Jackthurston re publicaJackthurston re publica
Jackthurston re publica
 
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il Vino
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il VinoVota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il Vino
Vota l’Etichetta del Vino della Valle dei Templi di Agrigento e Vinci il Vino
 

Similar a Scaling habits of ASP.NET

Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented DesignRodrigo Campos
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analyticsamesar0
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestRodolfo Kohn
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterJohn Adams
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics HeroTechWell
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabitsYves Goeleven
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013Daniel Austin
 
A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology confluent
 
Experience with Kafka & Storm
Experience with Kafka & StormExperience with Kafka & Storm
Experience with Kafka & StormOtto Mok
 

Similar a Scaling habits of ASP.NET (20)

Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented Design
 
Play With Streams
Play With StreamsPlay With Streams
Play With Streams
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New Contexts
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analytics
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013
 
A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology
 
Experience with Kafka & Storm
Experience with Kafka & StormExperience with Kafka & Storm
Experience with Kafka & Storm
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
 

Más de David Giard

Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022David Giard
 
Azure data factory
Azure data factoryAzure data factory
Azure data factoryDavid Giard
 
University of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureUniversity of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureDavid Giard
 
University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018David Giard
 
Intro to cloud and azure
Intro to cloud and azureIntro to cloud and azure
Intro to cloud and azureDavid Giard
 
Azure and deep learning
Azure and deep learningAzure and deep learning
Azure and deep learningDavid Giard
 
Azure and Deep Learning
Azure and Deep LearningAzure and Deep Learning
Azure and Deep LearningDavid Giard
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Own your own career advice from a veteran consultant
Own your own career   advice from a veteran consultantOwn your own career   advice from a veteran consultant
Own your own career advice from a veteran consultantDavid Giard
 
You and Your Tech Community
You and Your Tech CommunityYou and Your Tech Community
You and Your Tech CommunityDavid Giard
 
Microsoft Azure IoT overview
Microsoft Azure IoT overviewMicrosoft Azure IoT overview
Microsoft Azure IoT overviewDavid Giard
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Big Data on azure
Big Data on azureBig Data on azure
Big Data on azureDavid Giard
 
Microsoft azure without microsoft
Microsoft azure without microsoftMicrosoft azure without microsoft
Microsoft azure without microsoftDavid Giard
 
Azure mobile apps
Azure mobile appsAzure mobile apps
Azure mobile appsDavid Giard
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesDavid Giard
 
Effective Data Visualization
Effective Data VisualizationEffective Data Visualization
Effective Data VisualizationDavid Giard
 
Angular2 and TypeScript
Angular2 and TypeScriptAngular2 and TypeScript
Angular2 and TypeScriptDavid Giard
 

Más de David Giard (20)

Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022
 
Azure data factory
Azure data factoryAzure data factory
Azure data factory
 
Azure functions
Azure functionsAzure functions
Azure functions
 
University of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureUniversity of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft Azure
 
University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018
 
Intro to cloud and azure
Intro to cloud and azureIntro to cloud and azure
Intro to cloud and azure
 
Azure and deep learning
Azure and deep learningAzure and deep learning
Azure and deep learning
 
Azure and Deep Learning
Azure and Deep LearningAzure and Deep Learning
Azure and Deep Learning
 
Custom vision
Custom visionCustom vision
Custom vision
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Own your own career advice from a veteran consultant
Own your own career   advice from a veteran consultantOwn your own career   advice from a veteran consultant
Own your own career advice from a veteran consultant
 
You and Your Tech Community
You and Your Tech CommunityYou and Your Tech Community
You and Your Tech Community
 
Microsoft Azure IoT overview
Microsoft Azure IoT overviewMicrosoft Azure IoT overview
Microsoft Azure IoT overview
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Big Data on azure
Big Data on azureBig Data on azure
Big Data on azure
 
Microsoft azure without microsoft
Microsoft azure without microsoftMicrosoft azure without microsoft
Microsoft azure without microsoft
 
Azure mobile apps
Azure mobile appsAzure mobile apps
Azure mobile apps
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web Services
 
Effective Data Visualization
Effective Data VisualizationEffective Data Visualization
Effective Data Visualization
 
Angular2 and TypeScript
Angular2 and TypeScriptAngular2 and TypeScript
Angular2 and TypeScript
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Scaling habits of ASP.NET

  • 1. The Scaling Habits of ASP.NET Applications Richard Campbell
  • 2. Richard Campbell • Background – After thirty years, done every job in the computer industry you’ve ever heard of • Currently – Co-Founder of Strangeloop Networks – Co-Host of .NET Rocks! – Host of RunAs Radio
  • 3. 50 000 foot view Business Success Business Traction Make it Work Right Page Views Make it Work Version 1 Version 2 Version 3 Version N Time
  • 4. What are we measuring? • Capacity – Total number of known users – Number of active users (aka active sessions) – Number of concurrent users (aka concurrent requests) • Throughput – Page Views per Month – Requests per Second – Transactions per Second • Performance – Load time in milliseconds – Time to first byte (TTFB), Time to last byte (TTLB)
  • 5. The Anatomy of a Web Request
  • 6. Performance Equation Legend: R: Response time RTT: Round Trip Time App Turns: Http Requests Concurrent Requests: # server sockets open by browser Cs: Server Side Compute time Cc: Client Compute time Source: Field Guide to Application Delivery Systems, by Peter Sevcik and Rebecca Wetzel, NetForecast
  • 7. Where do the numbers come from? Server Code Timing: 0.8 secs 4.5 sec Client Code Timing: 1.2 secs http://www.speedtest.net/ Ping statistics for 209.162.190.188: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 80ms, Maximum = 92ms, Average = 85ms http://www.websiteoptimization.com/services/analyze/
  • 8. Performance Spreadsheet Factor 1 Factor 2 Factor 3 Time P1 = Payload/Bandwidth 208 KB Payload 717 KB/Sec Bandwidth 0.29 seconds P2 = AppTurns * Roundtrip Time 51 Appturns 85 ms Roundtrip 2 Concurrent Requests 2.168 seconds P3 = Compute Time at Server 0.8 Seconds 0.8 seconds P4 = Compute Time at Client 1.2 Seconds 1.2 seconds 4.458 seconds
  • 9. Version 1: Make it work • Get Version 1 out the door • Define the initial hardware platform • Meet the launch date The only one who likes your app is you
  • 10. Scaling Habits • 10 to 50 requests/second • 5 to 15 users • 15 active sessions at peak • Problems with performance on areas of the site – Multi-User Issues – Complex input screens – Reports
  • 11. Solutions for Version 1 • Fix logical scaling problems – Multi-user data access • Get user feedback – Humiliating but useful – Fix the actual user pains – Watch your app in use
  • 12. Version 2: Make it work right • Focus on features – What is missing • Bug Fixing • Rethink the App or UI – Some new directions • Larger and more diverse users base Now your boss likes your app too
  • 13. Scaling Habits • 50 to 100 requests/second • 15 to 50 users (5-10 are remote!) • 30 active sessions at peak • Problems – Fights with IT over remote access – Reach the single server limit • What does this look like?
  • 14.
  • 15. What does it really look like? • Memory consumption above 80% • Processor consumption at 100% all the time • Request queues start to grow out of hand • Page timeouts (server not available) • Sessions get lost • People can’t finish their work!
  • 16. Solutions for Version 2 • More Hardware – Dedicated web server – Separate database server (probably shared) • Find the low hanging fruit – Fix querying – Get your page size under control
  • 17. Version 3: Business Traction • Weighing business priorities – Formal IT transition point – There is budget • Scaling versus Reliability – Which one is more important • 99% verses 100% up time – Cost of Reliability People you don’t know like your app
  • 18. Scaling Habits • 300 to 1000 requests/second • 100 to 500 users • 300 active sessions at peak • Problems – Performance is now front and center – Consequences of downtime are now significant
  • 19. Network vs. Development IQ • Network IQ Test • Development IQ Test – Explain each of the – Explain the network Web.config file diagram of your – Explain the load- application balancing scheme – Explain how to access the required by the app production log files – Explain the bottlenecks – Explain the redundancy of the production system model of the production system
  • 20. Solutions for Version 3 • Move to multiple web servers: You need a load balancer • More bandwidth: Move to a hosting facility • Get methodical, use profiling – Red Gate Ants, SQL Profiler, Web Site Optimizer • Get the facts on the problem areas – Work methodically and for the business on addressing slowest lines of code – Focus on understanding what the right architecture is rather than ad-hoc architecting • Let the caching begin!
  • 21. Version N: Business Success • IT costs now out weigh the software development • Getting new features to production takes months – Or Cowboy it! (which always happens) • IT and Dev process is a focus – Tech Politics It’s no longer your app
  • 22. Scaling Habits • 500+ requests/second • 5000+ users • 3000 active sessions at peak • Problems – Running out of memory with inproc sessions – Worker process recycling – Cache Coherency – Session Management
  • 23. A Word About Load-balancing Sticky vs. Round Load Balancer Robin vs. WMI Virtual IP Web Server 1 Web Server 2 Web Server 3 Web Server 4 Persistent Data Session?
  • 24. Performance and Scale • Now the problem is that scale and performance are intertwined – A new class of ‘timing’ problem shows up under load (and are almost impossible to reproduce outside of production) – Caches are flushed more than expected • And performance plummets
  • 25. Solutions for Version N • Your architecture is now hardware and software – Use third party accelerators – Create a performance team and focus on best practices – Use content routing • Separate and pre-generate all static resources • Cache, cache, and more cache – Output Cache – All static pages are cached – Response.Cache – Look for database gets with few updates
  • 26. Summary • Focus on actual user performance problems – What is reality? • Start with low hanging fruit • Use methodical, empirical performance improvement • At large scale, the network is the computer