Troubleshooting%20Web%20Site%20Performance%20Issues%20with%20Visual%20Studio%20Team%20System - PowerPoint PPT Presentation

About This Presentation
Title:

Troubleshooting%20Web%20Site%20Performance%20Issues%20with%20Visual%20Studio%20Team%20System

Description:

... blog. http://blogs.msdn.com/ricom/ Maoni's WebLog. http://blogs.msdn. ... Martin Kulov's blog. http://www.codeattest.com/blogs/martin. Questions and Answers ... – PowerPoint PPT presentation

Number of Views:223
Avg rating:3.0/5.0
Slides: 35
Provided by: stac172
Learn more at: https://www.devbg.org
Category:

less

Transcript and Presenter's Notes

Title: Troubleshooting%20Web%20Site%20Performance%20Issues%20with%20Visual%20Studio%20Team%20System


1
Troubleshooting Web Site Performance Issues with
Visual Studio Team System
  • Martin Kulov
  • Director .NET Development
  • National Academy for Software Development
  • MVP VSTS, MCT, MCSD, MCPD

2
What We Will Cover
  • How testing processes can help us deliver quality
    code
  • Measuring performance of ASP.NET sites
  • Improving ASP.NET performance

3
Session Prerequisites
  • .NET Framework intermediate level
  • ASP.NET intermediate level
  • Windows Counters basic level

Level 200
4
Agenda
  • WWW (Why, When, What) to test
  • Web Applications Tests
  • Performance Testing ASP.NET applications
  • Profiling ASP.NET Applications
  • Measuring ASP.NET Applications
  • Tuning ASP.NET Applications

5
Why we should test
  • Quality increase
  • Finding and fixing design problems
  • Lowering TCO and maintenance costs

6
When we should test
  • As often as possible
  • As early as possible
  • Test automation would help a lot

7
What we should test
  • Critical business features
  • Everything else ?
  • The clearer performance goals are, the better we
    will know what to test
  • PMs should get these goals defined from the start

8
Testing Web ApplicationsTesting types
  • Functional Testing
  • Performance Testing
  • Security Testing
  • Reliability Testing
  • Usability Testing
  • others

9
Performance Testing
  • Most critical and often neglected type of test
  • It should be done during each phase of the
    project
  • There are three main principles
  • Measure
  • Measure
  • Measure
  • Set your desired goals
  • Tune the application

10
Setting your goals
  • Response time
  • Latency on the server
  • Latency on the client (TTFB and TTLB)
  • Throughput
  • Resource utilization
  • Identify problem areas
  • Define workload profiles

11
Profiling ASP.NET Applications
  • Profiling is the process of collecting data
  • We can measure the result
  • Profiling is done though code instrumentation
  • In instrumentation we inject additional code to
    the system so it can generate events

12
System Resources CountersCPU Counters
  • Processor\ Processor Time
  • Processor\ Privileged Time
  • Processor\ Interrupt Time
  • System\Processor Queue Length
  • System\Context Switches/sec

13
System Resources CountersMemory Counters
  • Memory\Available Mbytes
  • Memory\Page Reads/sec
  • Memory\Pages/sec
  • Memory\Pool Nonpaged Bytes
  • Server\Pool Nonpaged Failures
  • Server\Pool Paged Failures
  • Server\Pool Nonpaged Peak
  • Memory\Cache Bytes
  • Memory\Cache Faults/sec

14
System Resources CountersNetwork Counters
  • Network Interface\Bytes Total/sec
  • Network Interface\Bytes Received/sec
  • Network Interface\Bytes Sent/sec
  • Server\Bytes Total/sec
  • Protocol_Object\Segments Received/sec
  • Protocol_Object\Segments Sent/sec
  • Processor\ Interrupt Time

15
System Resources CountersDisk I/O Counters
  • PhysicalDisk\Avg. Disk Queue Length
  • PhysicalDisk\Avg. Disk Read Queue Length
  • PhysicalDisk\Avg. Disk Write Queue Length
  • PhysicalDisk\Avg. Disk sec/Read
  • PhysicalDisk\Avg. Disk sec/Transfer
  • PhysicalDisk\Disk Writes/sec

16
Managed Code CountersMemory Counters
  • Process\Private Bytes
  • .NET CLR Memory\ Time in GC
  • .NET CLR Memory\ Bytes in all Heaps
  • .NET CLR Memory\ Gen N Collections
  • .NET CLR Memory\ of Pinned Objects
  • .NET CLR Memory\Large Object Heap Size

17
Managed Code CountersOther Counters
  • Working Set
  • Process\Working Set
  • Exceptions
  • .NET CLR Exceptions\ of Exceps Thrown / sec
  • Contention
  • .NET CLR LocksAndThreads\Contention Rate/sec
  • .NET CLR LocksAndThreads\Current Queue Length

18
Managed Code CountersOther Counters
  • Threading
  • .NET CLR LocksAndThreads\ of current physical
    Threads
  • Thread\ Processor Time
  • Thread\Context Switches/sec
  • Thread\Thread State
  • Code Access Security
  • .NET CLR Security\Total RunTime Checks
  • .NET CLR Security\Stack Walk Depth

19
ASP.NET Counters
  • Worker Process
  • ASP.NET\Worker Process Restarts
  • Throughput
  • ASP.NET Applications\Requests/Sec
  • Web Service\ISAPI Extension Requests/sec
  • ASP.NET\Requests Current
  • ASP.NET Applications\Requests Executing
  • ASP.NET Applications\Requests Timed Out
  • Response time / latency
  • ASP.NET\ Request Execution Time

20
ASP.NET Counters
  • Cache
  • ASP.NET Applications\Cache Total Entries
  • ASP.NET Applications\Cache Total Hit Ratio
  • ASP.NET Applications\Cache Total Turnover Rate
  • ASP.NET Applications\Cache API Hit Ratio
  • ASP.NET Applications\Cache API Turnover Rate
  • ASP.NET Applications\Output Cache Entries
  • ASP.NET Applications\Output Cache Hit Ratio
  • ASP.NET Applications\Output Cache Turnover Rate

21
Tuning ASP.NET ApplicationsTuning Process
  • Performance tuning is an iterative process
  • On every step we should identify and eliminate
    bottlenecks
  • Retest and measure again to see if we are closer
    to our performance goals

22
Tuning ASP.NET ApplicationsTuning Categories
  • Application
  • Configuration settings
  • web.config
  • Platform
  • .NET Framework
  • Web Server
  • OS
  • Database
  • System
  • CPU, Memory, I/O, etc

23
Tuning ASP.NET ApplicationsTune the thread pool
  • ltprocessModelgt

ltprocessModel enable"true" timeout"Infinite
idleTimeout"Infinite shutdownTimeout"00005"
requestLimit"Infinite" requestQueueLimit"5000"
restartQueueLimit"10 memoryLimit"60
webGarden"false" cpuMask"0xffffffff"
userName"machine password"AutoGenerate"
logLevel"Errors clientConnectedCheck"00005
comAuthenticationLevel"Connect
comImpersonationLevel"Impersonate responseDea
dlockInterval"000300" maxWorkerThreads"20
maxIoThreads"20"/gt
24
Tuning ASP.NET ApplicationsTune the thread pool
  • lthttpRuntimegt

lthttpRuntime executionTimeout"90"
maxRequestLength"4096 useFullyQualifiedRedirect
Url"false" minFreeThreads"8" minLocalRequestF
reeThreads"4" appRequestQueueLimit"100" enabl
eVersionHeader"true"/gt
25
Tuning ASP.NET ApplicationsRecommended settings
  • Recommended Threading Settings for Reducing
    Contention

Configuration setting Default (.NET 1.1) Recommended value
maxconnection 2 12 CPUs
maxIoThreads 20 100
maxWorkerThreads 20 100
minFreeThreads 8 88 CPUs
minLocalRequestFree-Threads 4 76 CPUs
26
Tuning ASP.NET ApplicationsOther settings
  • Set memory limit
  • ltprocessModel ... memoryLimit"60" .../gt
  • IIS 6.0 manager
  • Set timeouts
  • lthttpRuntime executionTimeout"90" /gt
  • ltprocessModel responseDeadlockInterval"000300"
    /gt
  • Evaluate use of RequestQueueLimit
  • ltprocessModel enable"true" requestQueueLimit"500
    0" /gt

27
Tuning ASP.NET ApplicationsOther settings
  • Disable tracing and debugging
  • Disable session state
  • ltsessionState mode"off" /gt
  • ltsessionState timeout"20"/gt
  • Disable View State
  • ltpages enabledViewState"false" /gt

ltconfigurationgt ltsystem.webgt lttrace
enabled"false" pageOutput"false"
/gt ltcompilation debug"false"
/gt lt/system.webgt lt/configurationgt
28
Demonstration 1
  • Profiling and load testing ASP.NET applications
    with Visual Studio Team System 2005 for Software
    Testers

29
Session Summary
  • The inevitable software testing process
  • Measuring performance of ASP.NET applications
  • Tuning performance of ASP.NET applications
  • Visual Studio Team System 2005 for Software
    Testing provide integrated profiling, load
    testing and reporting environment

30
Next Steps
  • Create load profiles for your application
  • Prepare and analyze reports from load testing
  • Identify and resolve bottlenecks
  • Tune Windows OS performance
  • Tune ADO.NET performance
  • Tune SQL Server performance

31
For More Information
  • Microsoft patterns practices
  • http//msdn.microsoft.com/practices/
  • Improving .NET Application Performance and
    Scalability
  • http//msdn.microsoft.com/library/default.asp?url
    /library/en-us/dnpag/html/scalenet.asp

32
Additional Resources
  • Rico Marianis blog
  • http//blogs.msdn.com/ricom/
  • Maoni's WebLog
  • http//blogs.msdn.com/maoni/
  • Bulgarian Association of Software Developers
  • http//www.devbg.org
  • http//academy.devbg.org
  • Martin Kulovs blog
  • http//www.codeattest.com/blogs/martin

33
Questions and Answers
  • Submit text questions using the Ask button.
  • Dont forget to fill out the survey.
  • For upcoming and previously live webcasts
    www.microsoft.com/webcasts
  • Got webcast content ideas? Contact us at
    http//go.microsoft.com/fwlink/?LinkId41781
  • Today's webcast was presented using Microsoft
    Office Live Meeting. Get a free 14- day trial by
    visiting http//www.microsoft.com/presentlive 

34
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com