Skip to content

Instantly share code, notes, and snippets.

@joymon
Last active November 22, 2019 20:36
Show Gist options
  • Save joymon/07138c062418d3a7ee495a8dfb7b83d0 to your computer and use it in GitHub Desktop.
Save joymon/07138c062418d3a7ee495a8dfb7b83d0 to your computer and use it in GitHub Desktop.
.Net Web App Performance - Important performance counters

System

Applies to - Web Server, Application Server & Database server

Counter Instance Object Description
Processor Queue Length System Official link
% Processor Time _Total Processor Information
Available MBytes Memory
% Processor time w3wp## Process
ID Process w3wp## Process
Thread Count w3wp## Process
Private Bytes w3wp## Process
Avg. Disk Queue Length _Total PhysicalDisk Requests waiting

Network

Counter Instance Object
Bytes Received/sec Network Interface
Bytes Sent/sec Network Interface
Bytes Total/sec Network Interface
Current bandwidth Network Interface
Output Queue Length Network Interface

IIS

.Net

Counter Instance Object
% Time in Jit w3w3## .Net CLR Jit
Current Queue Length w3w3## .Net CLR LocksAndThreads
Total # of Contentions w3w3## .Net CLR LocksAndThreads
# Bytes in all Heaps w3w3## .NET CLR Memory
% Time in GC w3w3## .NET CLR Memory
Large Object Heap size w3w3## .NET CLR Memory

https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/performance-counters

ASP.Net

Counter Instance Object
Request Execution Time ASP.Net Applications
Request Wait Time ASP.Net Applications
Requests In Application Queue ASP.Net Applications
Requests/Sec ASP.Net Applications

ADO.Net

Inside SQL Server

Counter Instance Object Description
Logins/sec MSSQL${Instance}:General Statistics
User Connections MSSQL${Instance}:General Statistics
SQL Compilations/sec MSSQL${Instance}:SQL Statistics Shows the compilations
SQL Re-Compilations/sec MSSQL${Instance}:SQL Statistics Shows the Re-compilations if there are dynamic queries
Cache Object Counts SQL Plans MSSQL${Instance}:SQL Plans
Cache Objects in use SQL Plans MSSQL${Instance}:SQL Plans
Cache Hit Ratio SQL Plans MSSQL${Instance}:SQL Plans

Locks

Counter Instance Object Description
Average Wait Time(ms) _Total MSSQL${Instance} Avg wait time for the callers that ended up in wait.
Lock Requests/sec _Total MSSQL${Instance} New lock requests
Lock Waits/sec _Total MSSQL${Instance} # lock requests/s that make the caller to wait

Official link

Applicable to Always On Availability Groups

Counter Instance Object Description
Mirrored Write Transactions/sec _Total MSSQL${Instance}:Database Replica
Transaction Delay _Total MSSQL${Instance}:Database Replica Divide by Mirrored Write Transaction/sec to get Avg Transaction Delay

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment