SlideShare a Scribd company logo
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

More Related Content

What's hot

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 that
Sharon 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 Know
Todd Palino
 
Ap61
Ap61Ap61
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecture
thlias
 
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
panagenda
 
Netdruid Presentation
Netdruid PresentationNetdruid Presentation
Netdruid Presentation
dineshmisal
 
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_ha
mlraviol
 
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
C4Media
 
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the Server
XBOSoft
 
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, Deployment
GWAVA
 
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
LinkedIn
 
SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016
David 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, Oracle
mfrancis
 
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
Konstantin Burkalev
 
Five steps perform_2013
Five steps perform_2013Five steps perform_2013
Five steps perform_2013
PostgreSQL Experts, Inc.
 
Managing Remote Teams
Managing Remote TeamsManaging Remote Teams
Managing Remote Teams
Dell 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/2017
Daniel Meyer
 

What's hot (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
 

Viewers also liked

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
Nick van Terheyden
 
Agamenón y Clitemnestra
Agamenón y ClitemnestraAgamenón y Clitemnestra
Agamenón y Clitemnestra
clasicasesplugues
 
Daniel's Journal
Daniel's JournalDaniel's Journal
Daniel's Journal
zzzdbsgh
 
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
 
Health Story RSNA 2011 Update
Health Story RSNA 2011 UpdateHealth Story RSNA 2011 Update
Health Story RSNA 2011 Update
Nick van Terheyden
 
Declarative analysis of noisy information networks
Declarative analysis of noisy information networksDeclarative analysis of noisy information networks
Declarative analysis of noisy information networks
University of New South Wales
 
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
Eugenio Agnello
 
Software evaluation
Software evaluationSoftware evaluation
Software evaluation
Abdullah al-kharusi
 
Real grade survey
Real grade surveyReal grade survey
Real grade survey
Abdullah al-kharusi
 
A C H P E R
A C H P E RA C H P E R
A C H P E R
mrrobbo
 
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
Brian Link
 
Norme Tecniche 2008
Norme Tecniche 2008Norme Tecniche 2008
Norme Tecniche 2008
Eugenio Agnello
 
Closing the talent gap teachers
Closing the talent gap teachersClosing the talent gap teachers
Closing the talent gap teachers
Raimundo 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 Bases
University 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 2008
jackthur
 
Gray Routes Company Profile
Gray Routes Company ProfileGray Routes Company Profile
Gray Routes Company Profile
Soubhagya Sahoo
 
Jackthurston re publica
Jackthurston re publicaJackthurston re publica
Jackthurston re publica
jackthur
 
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
Eugenio Agnello
 

Viewers also liked (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 to Scaling habits of ASP.NET

Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented Design
Rodrigo Campos
 
Play With Streams
Play With StreamsPlay With Streams
Play With Streams
Tianjian Chen
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
Zend by Rogue Wave Software
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
John 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 Applications
Ronny 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 Contexts
Eric Proegler
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analytics
amesar0
 
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
Rodolfo Kohn
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
John Adams
 
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
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
Roger Xia
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
liujianrong
 
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
Redis Labs
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
TechWell
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
Yves Goeleven
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013
Daniel 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 & Storm
Otto Mok
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
Treasure Data, Inc.
 

Similar to 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 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 ...
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
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
 

More from David Giard

Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022
David Giard
 
Azure data factory
Azure data factoryAzure data factory
Azure data factory
David Giard
 
Azure functions
Azure functionsAzure functions
Azure functions
David 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 Azure
David 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, 2018
David Giard
 
Intro to cloud and azure
Intro to cloud and azureIntro to cloud and azure
Intro to cloud and azure
David Giard
 
Azure and deep learning
Azure and deep learningAzure and deep learning
Azure and deep learning
David Giard
 
Azure and Deep Learning
Azure and Deep LearningAzure and Deep Learning
Azure and Deep Learning
David Giard
 
Custom vision
Custom visionCustom vision
Custom vision
David 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 roll
David 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 consultant
David Giard
 
You and Your Tech Community
You and Your Tech CommunityYou and Your Tech Community
You and Your Tech Community
David Giard
 
Microsoft Azure IoT overview
Microsoft Azure IoT overviewMicrosoft Azure IoT overview
Microsoft Azure IoT overview
David 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 roll
David Giard
 
Big Data on azure
Big Data on azureBig Data on azure
Big Data on azure
David Giard
 
Microsoft azure without microsoft
Microsoft azure without microsoftMicrosoft azure without microsoft
Microsoft azure without microsoft
David Giard
 
Azure mobile apps
Azure mobile appsAzure mobile apps
Azure mobile apps
David 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 Services
David Giard
 
Effective Data Visualization
Effective Data VisualizationEffective Data Visualization
Effective Data Visualization
David Giard
 
Angular2 and TypeScript
Angular2 and TypeScriptAngular2 and TypeScript
Angular2 and TypeScript
David Giard
 

More from 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
 

Recently uploaded

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 

Recently uploaded (20)

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 

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