Measuring ASP.NET Performance Using Counters

Following is a list of performance counters I am usually taking to spot low hanging fruits when measuring ASP.NET performance:

Resource utilization

\.Processor\%Processor Time
\.NET CLR Memory(*)\Allocated Bytes/sec
\.NET CLR Memory(*)\% Time in GC
\.NET CLR Exceptions(*)\# of Exceps Thrown / sec
\.NET CLR Loading(*)\Current Assemblies


\.NET CLR LocksAndThreads(*)\Contention Rate / sec
\.NET CLR LocksAndThreads(*)\Current Queue Length
\ASP.NET\Requests Queued
\ASP.NET\Request Wait Time
\ASP.NET\Requests Current
\ASP.NET Applications\Requests In Application Queue
\ASP.NET Applications\Pipeline Instance Count
\ASP.NET Applications\Requests Executing
\ASP.NET Applications\Requests/Sec
\Web Service\Current ISAPI Extension Requests

Response time

\ASP.NET\Request Execution Time

SQL Server

SQL Server: General Statistics\Logins/sec
SQL Server: General Statistics\Logouts/sec
SQL Server: General Statistics\User Connections

Detailed explanation about each counter and its significance can be found here: Chapter 15 — Measuring .NET Application Performance

I particularly love the following diagram from the guide. The diagram helps brainstorming while identifying root cause of the performance issues identified using the counters:


Related Book

My Related Posts

Comments (0)