IN THIS TASK

This step-by-step article describes how to analyze ASP.NET
Web application performance by using the Performance Administration tool.

ASP.NET provides a lot of information through standard performance
counters. The standard performance counters can be monitored by using the
Performance snap-in. This information is useful for system administrators who
must understand the performance characteristics of an ASP.NET application. The
performance counters can reveal the time it takes to render pages, the burden
placed on the processor, and the number of active ASP.NET sessions.

Monitoring these key counters is useful under the circumstances that
follow:

You can create a performance baseline and then use this
baseline to measure the impact of configuration changes and application
upgrades.

You can validate changes that are made to the configuration
of an application specifically to improve performance.

You can verify that hardware upgrades have the effect that
you want on performance.

You can monitor the performance of the application under
load. The load can be either real or artificially generated by a tool such as
the Web Application Stress tool.

You can determine the performance impact of application
upgrades.

This article describes the most important counters that you can
use to analyze the performance of ASP.NET applications. This is not a complete
list of ASP.NET counters. Only the minimal counters that you must have to gauge
the performance of an application are described.

Key Performance Monitor Counters

These counters are most easily viewed by using the Performance
snap-in. To run the Performance snap-in, follow this steps:

On the taskbar, click start, point to
Settings, and then click Control
Panel.

Double-click the Administrative Tools
folder and then double-click Performance tool.

When the Performance snap-in starts, click to select the
System Monitor object in the left pane and then click
Add on the tool bar to add the counters that are described in
the following table.

Collapse this tableExpand this table

Performance Object

Counter

Instance (if
necessary)

Description

Process

% Processor Time

aspnet_wp

The percentage of the time that is processor time
consumed by ASP.NET. When you compare performance under standard load against a
previously captured baseline, decreases in this counter reveal lower processor
requirements, and therefore greater scalability.

Process

Working Set

aspnet_wp

The
quantity of memory that is actively used by ASP.NET. While the application
developer has the most control over how memory is consumed by the application,
system administrators can have a significant impact by adjusting the session
time-out period.

ASP.NET
Applications

Requests/Sec

__Total__

When you analyze
performance against an artificially generated load, this counter permits you to
verify that requests are handled as quickly as they are sent. If the number of
requests per second falls below the number of requests that are generated per
second, queuing is occurring. This means that the maximum request rate has been
surpassed. When you analyze actual user load in a production environment, this
counter reveals how busy the site is.

ASP.NET Applications

Sessions
Active

__Total__

This counter shows the number of ASP.NET
sessions that have been created but have not timed out. Session-enabled ASP.NET
applications create a new session when a user request is submitted without a
cookie. Sessions are removed when the application destroys the session or when
the session times out. By default, ASP.NET sessions time out after 20 minutes.
Each session consumes memory. Therefore, if you reduce the session time-out,
you may improve performance if the session uses a large quantity of memory, and
a significant number of sessions are active. Monitor the Working Set counter to
measure the impact that session time-out has on memory consumption.

ASP.NET

State Server Sessions
Active

This counter shows the same information as the Sessions
Active counter in the ASP.NET Application performance object. Use this counter when a state server is used instead of
in-process sessions.

ASP.NET

Request Execution
Time

This counter shows the time, in milliseconds, that it
takes to render the last requested page and then transmit it to the user. This
counter will generally be greater than the time a trace shows to render the
page. This counter is a more comprehensive measurement of start-to-finish
request time. If this counter shows a lower average when compared to a
baseline, then both the scalability and the performance of the application have
been increased.