Presentation is loading. Please wait.

Presentation is loading. Please wait.

Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications.

Similar presentations


Presentation on theme: "Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications."— Presentation transcript:

1

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.


Download ppt "Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications."

Similar presentations


Ads by Google