Download presentation
Presentation is loading. Please wait.
Published byMargaret Doyle Modified over 8 years ago
2
Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications
3
3 Agenda Performance Scale Up Scale Out Monitoring How to Monitor When to monitor Tools
4
4 Scale
5
5 Scale Up App
6
6 A better approach… App Optimize App Scale Up App
7
7 Optimizations Response time and Throughput Optimization Memory Optimization Reducing Work Postponing Work
8
8 XML. Use vs. Abuse XML reading and generation is a resource hungry activity Understand why XML was developed.
9
9 Ideal use-cases for XML Configuration Data Data that is not manipulated in the Database Large data structures used for display-only
10
10 Pre-generation Front-end UI generation Tools: CodeDom, Text Templates Data Values pre-generated Tools: DB Tables, Cache, Data.JS Files
11
11 Cache Static Data Lookup Data Data which changes once in while Rules Will help Scale-out scenarios Tools: Velocity, ASP.Net Caching
12
12 Intelligent update Delete and insert works for small pieces Identify changes at UI layer and send changes only Keep Transaction closer to DB, do no start from application-tier
13
13 Navigation Post-Backs for just getting one value are not good. Avoid ViewState – If cannot, manage the size Break down large form into multiple forms/sections Avoid dynamic form generation Tools: Viewstate Size tool, AJAX, Templates
14
14 Iterative Data Processing Avoid Large Dataset iteration in App/Business tier. Use set-operations in Database. Avoid loops.
15
15 Keep it simple Reflection, where interface would do! Why? WF for Status Update! Why? Pass SP parameters as XML! Why? HTTP Web Service call between Web Tier and Business Tier!! Why?
16
16 Can I Async it?
17
17 If not…can I Batch it?
18
18 Use the power of the Client Client-side Javascript Use a framework – jquery, ExtJs, Dojo Size, UI, Licensing, Community support, performance, html compliance
19
19 Now Scale Out… AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp
20
20 Stateless Web Tier In-Proc Sessions vs. Out-of-proc Sessions Use Velocity for Shared-Cache
21
21 Web Sharding Divide your application based on functions Host each function on separate Farms Use URL-Based routing to distribute load News Trades Portfolio Management
22
22 Decouple Well
23
23 Where is you load? AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp AppApp
24
24 Database Scale-out
25
25 Database Sharding Divide your application based on functions Create separate schemas for each Use Databased routing to distribute load Company News Employee Self Service HR processes
26
26 Database Performance Index but do not over Index Don’t ignore Logging Put the Log on a separate physical disk Use OpenXML Judiciously For static content applications, consider making DB Read-only Use maintenance plans to Defrag and Update Stats Periodically.
27
27 Monitoring Real-world test scenarios Load test for Vital Stats (CPU, Memory, IO) Find your slowest workloads Load test only the slowest workloads Dig deeper into ASP.Net, SQL and App-Specific counters Always Stress Test after Load testing Early and Often Part of Development Process Use appropriate Tools
28
28 Monitoring Visual Studio Team Suite for Testers Performance Monitor (PerfMon.exe) Custom Test Rigs CLR Profile (Part of VS Now) SQL Profiler Dynamic Management Views MS Round-trip analyzer, YSlow, Firebug IIS7 dynamic/static compression, minify Browser caching- expiry
29
29 Visit the MTC… Architecture Review Performance Monitoring Identifying Bottlenecks Solutions to remove/reduce bottlenecks Run Applications on State-of-art hardware, including the Latest Intel Nehalem-EX
30
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.