ASP.NET Performance Counters

Applies To: Windows Server 2003, Windows Server 2003 with SP1

ASP.NET supports the following ASP.NET system performance counters, which aggregate information for all ASP.NET applications on a Web server computer, or, alternatively, apply generally to a system of ASP.NET servers running the same applications.

ASP.NET Counters

Use the ASP.NET counters in Table D.35 through Table D.38 to monitor ASP.NET system performance.

Table D.35 describes the Application Restarts and Applications Running counters for the ASP.NET performance object.

Table D.35 Application Restarts and Applications Running Counters

Counter Description

Application Restarts

The number of times that an application has been restarted since the Web service started. Application restarts are incremented with each Application_OnEnd event. An application restart can occur because changes were made to the Web.config file or to assemblies stored in the application's \Bin directory, or because too many changes occurred in Web Forms pages. Sudden increases in this counter can mean that your Web application is shutting down. If an unexpected increase occurs, be sure to investigate it promptly. This value resets every time IIS is restarted.

Applications Running

The number of applications that are running on the server computer.

Table D.36 describes the Requests counters for the ASP.NET performance object.

Table D.36 Requests Counters

Counter Description

Requests Disconnected

The number of requests that were disconnected because a communication failure occurred.

Requests Queued

The number of requests in the queue waiting to be serviced. If this number increases as the number of client requests increases, the Web server has reached the limit of concurrent requests that it can process. The default maximum for this counter is 5,000 requests. You can change this setting in the computer's Machine.config file.

Requests Rejected

The total number of requests that were not executed because insufficient server resources existed to process them. This counter represents the number of requests that return a 503 HTTP status code, which indicates that the server is too busy.

Request Wait Time

The number of milliseconds that the most recent request waited in the queue for processing.

Table D.37 describes the State Server Sessions counters for the ASP.NET performance object. These counter are available only on a computer on which the state server service (aspnet_state) is running.

Table D.37 State Server Sessions Counters

Counter Description

State Server Sessions Abandoned

The number of user sessions that were explicitly abandoned. These are sessions that have been ended by specific user actions, such as closing the browser or navigating to another site.

State Server Sessions Active

The number of active user sessions.

State Server Sessions Timed Out

The number of user sessions that are now inactive. In this case, the user is inactive, not the server.

State Server Sessions Total

The number of sessions created during the lifetime of the process. This counter represents the cumulative value of State Server Sessions Active, State Server Sessions Abandoned, and State Server Sessions Timed Out counters.

Table D.38 describes the worker process counters for the ASP.NET performance object.

Table D.38 Worker Process Counters

Counter Description

Worker Process Restarts

The number of times that a worker process restarted on the server computer. A worker process can be restarted if it fails unexpectedly or when it is intentionally recycled. If worker process restarts increase unexpectedly, investigate immediately.

Worker Processes Running

The number of worker processes that are running on the server computer.

ASP.NET Applications Performance Counters

ASP.NET supports the following application performance counters, which you can use to monitor the performance of a single instance of an ASP.NET application. A unique instance of these counters, named __Total__, aggregates counters for all applications on a Web server. The __Total__ instance is always available. When no applications are running on the server, the counters display zero.

Table D.39 describes the Anonymous Requests counters for the ASP.NET Applications performance object.

Table D.39 Anonymous Requests Counters

Counter Description

Anonymous Requests

The number of requests that use anonymous authentication.

Anonymous Requests/sec

The average number of requests that have been made per second that use anonymous authentication.

Table D.40 describes the Cache Total counters for the ASP.NET Applications performance object.

Table D.40 Cache Total Counters

Counter Description

Cache Total Entries

The total number of entries in the cache. This counter includes both internal use of the cache by the ASP.NET framework and external use of the cache through exposed APIs.

Cache Total Hits

The total number of responses served from the cache. This counter includes both internal use of the cache by the ASP.NET framework and external use of the cache through exposed APIs.

Cache Total Misses

The number of failed cache requests. This counter includes both internal use of the cache by ASP.NET and external use of the cache through exposed APIs.

Cache Total Hit Ratio

The ratio of cache hits to cache misses. This counter includes both internal use of the cache by ASP.NET and external use of the cache through exposed APIs.

Cache Total Turnover Rate

The number of additions to and removals from the cache per second. Use this counter to help determine how efficiently the cache is being used. If the turnover rate is high, the cache is not being used efficiently.

Table D.41 describes the Cache API counters for the ASP.NET Applications performance object.

Table D.41 Cache API Counters

Counter Description

Cache API Entries

The total number of entries in the application cache.

Cache API Hits

The total number of requests served from the cache when it was accessed only through the external cache APIs. This counter does not track use of the cache internally by ASP.NET.

Cache API Misses

The total number of requests to the cache that failed when the cache was accessed through the external cache APIs. This counter does not track use of the cache internally by ASP.NET.

Cache API Hit Ratio

The cache hit-to-miss ratio when the cache was accessed through external cache APIs. This counter does not track use of the cache internally by ASP.NET.

Cache API Turnover Rate

The number of additions to and removals from the cache per second, when it is used through the external APIs (excluding internal use by the ASP.NET framework). This counter is useful for determining how effectively the cache is being used. If the turnover is great, then the cache is not being used effectively.

Table D.42 describes the Errors counters for the ASP.NET Applications performance object.

Table D.42 Errors Counters

Counter Description

Errors During Preprocessing

The number of errors that occurred during parsing. Excludes compilation and run-time errors.

Errors During Compilation

The number of errors that occurred during dynamic compilation. Excludes parser and run-time errors.

Errors During Execution

The total number of errors that occurred during the execution of an HTTP request. Excludes parser and compilation errors.

Errors Unhandled During Execution

The total number of unhandled errors that occurred during the execution of HTTP requests.

An unhandled error is any uncaught run-time exception that escapes user code on the page and enters the ASP.NET internal error-handling logic. Exceptions occur in the following circumstances:

  • When custom errors are enabled, an error page is defined, or both.

  • When the Page_Error event is defined in user code and either the error is cleared (by using the HttpServerUtility.ClearError method) or a redirect is performed.

Errors Unhandled During Execution/sec

The number of unhandled exceptions that occurred per second during the execution of HTTP requests.

Errors Total

The total number of errors that occurred during the execution of HTTP requests. Includes parser, compilation, or run-time errors. This counter represents the sum of the Errors During Compilation, Errors During Preprocessing, and Errors During Execution counters. A well-functioning Web server should not generate errors.

Errors Total/sec

The average number of errors that occurred per second during the execution of HTTP requests. Includes any parser, compilation, or run-time errors.

Table D.43 describes the Output Cache counters for the ASP.NET Applications performance object.

Table D.43 Output Cache Counters

Counter Description

Output Cache Entries

The total number of entries in the output cache.

Output Cache Hits

The total number of requests serviced from the output cache.

Output Cache Misses

The number of output-cache requests that failed per application.

Output Cache Hit Ratio

The percentage of total requests that were serviced from the output cache.

Output Cache Turnover Rate

The average number of additions to and removals from the output cache per second. If the turnover is great, the cache is not being used effectively.

Table D.44 describes the Request Bytes counters for the ASP.NET Applications performance object.

Table D.44 Request Bytes Counters

Counter Description

Request Bytes In Total

The total size, in bytes, of all requests.

Request Bytes Out Total

The total size, in bytes, of responses sent to a client. This does not include standard HTTP response headers.

Table D.45 describes the Requests counters for the ASP.NET Applications performance object.

Table D.45 Requests Counters

Counter Description

Requests Executing

The number of requests that are currently executing.

Requests Failed

The total number of failed requests. All status codes greater than or equal to 400 increment this counter.

Note: Requests that cause a 401 status code increment this counter and the Requests Not Authorized counter. Requests that cause a 404 or 414 status code increment this counter and the Requests Not Found counter. Requests that cause a 500 status code increment this counter and the Requests Timed Out counter.

Requests In Application Queue

The number of requests in the application request queue.

Requests Not Found

The number of requests that failed because resources were not found (status code 404, 414).

Requests Not Authorized

The number of requests that failed because of lack of authorization (status code 401).

Requests Succeeded

The number of requests that executed successfully (status code 200).

Requests Timed Out

The number of requests that timed out (status code 500).

Requests Total

The total number of requests that have been made since the service started.

Requests/sec

The average number of requests that have been executed per second. This counter represents the current throughput of the application.

Table D.46 describes the Session State and SQL Server Connections counters for the ASP.NET Applications performance object.

Table D.46 Session State and SQL Server Connections Counters

Counter Description

Session State Server Connections Total

The total number of session-state connections that were made to a computer on which out-of-process session-state data is stored.

Session SQL Server Connections Total

The total number of session-state connections that were made to the Microsoft® SQL Server™ database in which session-state data is stored.

Table D.47 describes the Sessions counters for the ASP.NET Applications performance object. These counters are supported only with in-memory session state.

Table D.47 Sessions Counters

Counter Description

Sessions Active

The number of sessions that are active.

Sessions Abandoned

The number of sessions that have been explicitly abandoned.

Sessions Timed Out

The number of sessions that timed out.

Sessions Total

The total number of sessions.

Table D.48 describes the Transactions counters for the ASP.NET Applications performance object.

Table D.48 COM+ Transactions Counters

Counter Description

Transactions Aborted

The number of COM+ transactions that were aborted.

Transactions Committed

The number of COM+ transactions that were committed. This counter increments after page execution if the transaction does not abort.

Transactions Pending

The number of COM+ transactions that are in progress.

Transactions Total

The total number of COM+ transactions that have occurred since the service was started.

Transactions/sec

The average number of COM+ transactions that were started per second.

Table D.49 describes a few miscellaneous counters for ASP.NET Applications.

Table D.49 Miscellaneous Counters for ASP.NET Applications

Counter Description

Compilations Total

The total number of times that the Web server process dynamically compiled requests for files with .aspx, .asmx, .ascx, or .ashx extensions (or a code-behind source file).

Note: This number initially climbs to a peak value as requests are made to all parts of an application. After compilation occurs, however, the resulting binary compilation is saved on disk, where it is reused until its source file changes. This means that, even when a process restarts, the counter can remain at zero (be inactive) until the application is modified or redeployed.

Debugging Requests

The number of requests that occurred while debugging was enabled.

Pipeline Instance Count

The number of active request pipeline instances for the specified ASP.NET application. Because only one execution thread can run within a pipeline instance, this number represents the maximum number of concurrent requests that are being processed for a specific application. In most circumstances, it is better for this number be low when the server is busy, because this means that the CPU is well used.