The Scaling Habits of ASP.NET Applications Richard Campbell.

Slides:



Advertisements
Similar presentations
Fast Data at Massive Scale Lessons Learned at Facebook Bobby Johnson.
Advertisements

Case Study: Photo.net March 20, What is photo.net? An online learning community for amateur and professional photographers 90,000 registered users.
Scheduling in Web Server Clusters CS 260 LECTURE 3 From: IBM Technical Report.
Executional Architecture
Internet Information Server 6.0. IIS 6.0 Enhancements  Fundamental changes, aimed at: Reliability & Availability Reliability & Availability Performance.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
The Scaling IQ Test: When Dev and Admin Collide Richard Campbell Strangeloop Networks.
Death of a Web Server Richard Campbell Strangeloop Networks
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Business Continuity and DR, A Practical Implementation Mich Talebzadeh, Consultant, Deutsche Bank
Technical Architectures
Skills: use ping Concepts: network transit time, command-line user interface vs. graphical user interface, prefixes for small quantities This work is licensed.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
1 CSSE 477 – A bit more on Performance Steve Chenoweth Friday, 9/9/11 Week 1, Day 2 Right – Googling for “Performance” gets you everything from Lady Gaga.
Lesson 11-Virtual Private Networks. Overview Define Virtual Private Networks (VPNs). Deploy User VPNs. Deploy Site VPNs. Understand standard VPN techniques.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
Microsoft ® Application Virtualization 4.5 Infrastructure Planning and Design Series.
Client-Server Processing and Distributed Databases
CS332 Ch. 28 Spring 2014 Victor Norman. Access delay vs. Queuing Delay Q: What is the difference between access delay and queuing delay? A: I think the.
Capacity Planning in SharePoint Capacity Planning Process of evaluating a technology … Deciding … Hardware … Variety of Ways Different Services.
Microsoft ® Application Virtualization 4.6 Infrastructure Planning and Design Published: September 2008 Updated: February 2010.
How WebMD Maintains Operational Flexibility with NoSQL Rajeev Borborah, Sr. Director, Engineering Matt Wilson – Director, Production Engineering – Consumer.
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
Existing Network Study CPIT 375 Data Network Designing and Evaluation.
1 Oracle 9i AS Availability and Scalability Margaret H. Mei Senior Product Manager, ST.
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Global NetWatch Copyright © 2003 Global NetWatch, Inc. Factors Affecting Web Performance Getting Maximum Performance Out Of Your Web Server.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Identifying Application Impacts on Network Design Designing and Supporting Computer.
G053 - Lecture 08 Hosting Websites Mr C Johnston ICT Teacher
Virtual techdays INDIA │ august 2010 SQL Azure – Tips and Tricks Ramaprasanna Chellamuthu │ Developer Evangelist, Microsoft.
Protocol(TCP/IP, HTTP) 송준화 조경민 2001/03/13. Network Computing Lab.2 Layering of TCP/IP-based protocols.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Remote Access Using Citrix Presentation Server December 6, 2006 Matthew Granger IT665.
“Load Testing Early and Often” By Donald Doane Presentation to the Rockville MDCFUG.
A Method for Transparent Admission Control and Request Scheduling in E-Commerce Web Sites S. Elnikety, E. Nahum, J. Tracey and W. Zwaenpoel Presented By.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
An Introduction to Networking
Paperless Timesheet Management Project Anant Pednekar.
Internet Applications: Performance Metrics and performance-related concepts E0397 – Lecture 2 10/8/2010.
Module 16: Distributed System Structures Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Distributed.
Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
آشنایی با سیستم های امنیتی دیواره آتش نمایشگاه بین المللی Comex 2010.
Nick Swan Lightning Tools MVP SharePoint Server SharePoint 2007 Capacity and Performance Planning.
GENERAL SCALABILITY CONSIDERATIONS
The Scaling Habits of ASP.NET Applications Richard Campbell.
Scaling Network Load Balancing Clusters
Abhinav Kamra, Vishal Misra CS Department Columbia University
UnixBench System Score
Netscape Application Server
Principles of Network Applications
UI-Performance Optimization by Identifying its Bottlenecks
Chapter 2: System Structures
GCE Applied ICT G053: Lesson 02 Web Structure and Hosting
TYPES OF SERVER. TYPES OF SERVER What is a server.
Software Architecture in Practice
Introduction of Week 3 Assignment Discussion
Chapter 2 Introduction Application Requirements VS. Transport Services
The Application Lifecycle
Lecture 1: Multi-tier Architecture Overview
Admission Control and Request Scheduling in E-Commerce Web Sites
JavaScript Form Validation
Internet and Web Simple client-server model
DRC Central Office Services
Client/Server Computing and Web Technologies
Presentation transcript:

The Scaling Habits of ASP.NET Applications Richard Campbell

 Background  After thirty years, done every job in the computer industry you’ve ever heard of  Currently  Co-Founder and Product Evangelist for Strangeloop Networks  Co-Host of.NET Rocks!  Host of RunAs Radio Richard Campbell

foot view Time Page Views Version 1 Version 2 Version 3Version N Make it Work Right Business Traction Business Success

 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) What are we measuring?

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? Ping statistics for : Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 80ms, Maximum = 92ms, Average = 85ms 4.5 sec Server Code Timing: 0.8 secs Client Code Timing: 1.2 secs

Performance Spreadsheet

 Get Version 1 out the door  Define the initial hardware platform  Meet the launch date Version 1: Make it work The only one who likes your app is you

 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 Scaling Habits

 Fix logical scaling problems  Multi-user data access  Get user feedback  Humiliating but useful  Fix the actual user pains  Watch your app in use Solutions for Version 1

 Focus on features  What is missing  Bug Fixing  Rethink the App or UI  Some new directions  Larger and more diverse users base Version 2: Make it work right Now your boss likes your app too

 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? Scaling Habits

 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! What does it really look like?

 More Hardware  Dedicated web server  Separate database server (probably shared)  Find the low hanging fruit  Fix querying  Get your page size under control Solutions for Version 2

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

 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 Scaling Habits

 Network IQ Test  Explain each of the Web.config file  Explain the load-balancing scheme required by the app  Explain the bottlenecks of the production system Network vs. Development IQ  Development IQ Test  Explain the network diagram of your application  Explain how to access the production log files  Explain the redundancy model of the production system

 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! Solutions for Version 3

 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 Version N: Business Success It’s no longer your app

 500+ requests/second  users  3000 active sessions at peak  Problems  Running out of memory with inproc sessions  Worker process recycling  Cache Coherency  Session Management Scaling Habits

A Word About Load-balancing Load Balancer Virtual IP Web Server 1Web Server 2Web Server 3Web Server 4 Persistent Data Session? Sticky vs. Round Robin vs. WMI

 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 Performance and Scale

 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 Solutions for Version N

 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 Summary