Server Monitoring · WPLoadTester 7

.NET, IIS, and ASP.NET server monitoring.

The .NET agent collects about sixty platform-specific counters across ASP.NET, the .NET CLR, IIS, and the web server process group, on top of the base CPU, memory, disk, and network metrics. Every counter plots on the same axis as response time, so a spike in Lock Contention Queue Length or Requests Queued lines up against the slowdown automatically. No counter list to configure.

What the .NET agent adds.

Every WPLoadTester monitoring agent captures the base OS metrics: CPU, memory, disk, and network. On a Windows host running IIS and ASP.NET, the .NET agent adds about sixty platform-specific counters on top of that base, so a degradation inside the runtime is visible alongside the box-level resource curves.

The agent collects its full counter set automatically. There is no metric-selection step and no counter list to maintain. The dashboard surfaces each counter the same way it surfaces CPU, plotted against the same x-axis as response time.

  • 27 ASP.NET counters covering sessions, the application cache, request pipeline, and error rates.
  • 15 .NET CLR counters covering garbage collection, heap size, lock contention, and thread counts.
  • 15 IIS counters covering connections, request rates, and the file and URI caches.
  • 5 process counters for the combined IIS, ASP.NET, and Application Pool process group.

The base CPU, memory, and disk metrics ship in the Free edition. The .NET, CLR, and IIS counters are part of the Cloud full-metric set. See the full Server Monitoring overview

The counters in detail.

Each table below lists what WPLoadTester reports for that counter group and what the value measures. The same counters drive the correlation math, so the descriptions double as a reference when the dashboard flags one as the likely bottleneck source.

ASP.NET counters (27).

CounterWhat it measures
Active SessionsThe number of active sessions.
ASP.NET Application RestartsNumber of times the ASP.NET application has been restarted during the sample period.
Application RestartsNumber of times the application has been restarted during the sample period.
Cache EntriesTotal number of entries in the ASP.NET application cache, both internal and user-added.
Cache Hit RatioRatio of hits across all ASP.NET application cache calls. WPLoadTester reports this per sample period rather than as a running average since the last restart.
Cache HitsNumber of hits from all ASP.NET application cache calls.
Cache MissesNumber of misses from all ASP.NET application cache calls.
Cache Turnover RateAdditions and removals to the ASP.NET application cache per second.
CompilationsNumber of .asax, .ascx, .ashx, .asmx, or .aspx source files dynamically compiled.
Current RequestsCurrent ASP.NET requests, including those queued, executing, or waiting to be written to the client. When this exceeds the configured requestQueueLimit, ASP.NET begins rejecting requests.
Disconnected RequestsRequests disconnected due to a communication failure.
Errors/secRate of errors that occurred.
Last Request Execution TimeTime it took to execute the most recent ASP.NET request.
Pipeline Instance CountNumber of active ASP.NET application pipeline instances.
Queued RequestsNumber of ASP.NET requests waiting to be processed.
Rejected RequestsASP.NET requests rejected because the request queue was full.
Request Wait TimeTime the most recent request spent waiting in the queue.
Requests ExecutingNumber of ASP.NET requests currently executing.
Requests Not FoundRequests for resources that were not found.
Requests Not AuthorizedRequests that failed due to unauthorized access.
Requests Queue LengthNumber of ASP.NET requests in the application request queue.
Requests SucceededRequests that executed successfully during the sample period.
Requests Timed OutRequests that timed out.
Requests/secNumber of ASP.NET requests executed per second.
Sessions Timed OutSessions closed because idle time exceeded the server's AutoDisconnect setting. Shows whether AutoDisconnect is helping conserve resources.
Sessions AbandonedSessions that were explicitly abandoned.
Unhandled Execution Errors/secRate of unhandled errors.

.NET CLR counters (15).

CounterWhat it measures
Class Loader Heap SizeCurrent size in bytes of memory committed by the class loader across all AppDomains.
Current AppDomainsCurrent number of AppDomains loaded in the application. AppDomains isolate applications running in the same process.
Current AssembliesCurrent number of assemblies loaded across all AppDomains. A domain-neutral assembly loaded from multiple AppDomains counts once.
Exceptions/secNumber of exceptions thrown per second, handled and unhandled. A sustained rate above roughly 100 per second is a sign of trouble, since exceptions should be rare rather than part of normal control flow.
Heap SizeCurrent memory allocated on the GC heaps: the sum of the Gen 0, Gen 1, Gen 2, and Large Object heaps.
Generation 0 CollectionsNumber of times the youngest, most recently allocated objects were garbage collected during the sample period.
Generation 1 CollectionsNumber of times generation 1 objects were garbage collected.
Generation 2 CollectionsNumber of full, generation 2 garbage collections.
Lock Contention Queue LengthNumber of threads currently waiting to acquire a lock.
Lock Contention/secRate at which threads fail to acquire a managed lock on the first attempt.
Lock ContentionsTotal times threads failed to acquire a managed lock during the sample period.
Logical Thread CountNumber of current .NET thread objects, running and stopped.
Percent Time in GCPercentage of elapsed time spent in garbage collection since the last GC cycle.
Physical Thread CountNative OS threads owned by the CLR that back the .NET thread objects.
Recognized Thread CountThreads created outside the CLR that have since run inside it at least once.

IIS counters (15).

CounterWhat it measures
CGI Requests/secRate of CGI requests received by the web service.
Connection Attempts/secRate of connection attempts to the web service.
Current ConnectionsCurrent number of connections established with the web service.
Extension Requests/secRate of ISAPI extension requests received by the web service.
File Cache EntriesNumber of entries in the file cache.
File Cache HitsNumber of successful lookups in the file cache.
File Cache Hit %Ratio of file cache hits to total cache requests, reported per sample period.
File Cache MissesNumber of failed lookups in the file cache.
Kernel URI Cache Hit %Ratio of kernel URI cache hits to total cache requests, reported per sample period.
Kernel URI Cache MissesFailed lookups in the kernel URI cache.
Requests/secRate of HTTP requests received by the web server.
URI Cache EntriesNumber of entries in the URI cache.
URI Cache HitsSuccessful lookups in the URI cache.
URI Cache Hit %Ratio of URI cache hits to total cache requests, reported per sample period.
URI Cache MissesFailed lookups in the URI cache.

Web server process counters (5).

These five counters combine the IIS process (inetinfo), the ASP.NET worker process (aspnet_wp), and the Application Pool process (w3wp) into a single view of what the web server tier is consuming.

CounterWhat it measures
Handle CountHandles held by the known web server processes.
Private BytesCommitted memory owned by the known web server processes.
Thread CountThreads active across the known web server processes.
Virtual BytesVirtual address space size for the known web server processes.
Percent Processor TimePercentage of elapsed time the web server process threads used the processor.

How these counters find the bottleneck.

The Analytics Dashboard runs correlation math on every collected counter against response-time degradation. Any counter whose curve correlates above 0.94 with the slowdown gets flagged, and on Cloud the AI report writes the bottleneck-source paragraph from those flags: which counter saturated, on which host, at which user level the response time went vertical. A request queue that climbs as response time goes vertical is the kind of pattern that surfaces without manual cross-referencing.

See the AI bottleneck analysis on the Analytics Dashboard

Run a load test against your .NET stack and watch the counters line up.

The base monitoring agent ships in every WPLoadTester 7 install and captures CPU, memory, and disk for free. The full .NET, CLR, and IIS counter set is part of the Cloud edition. Download it to see your own runtime counters correlated against response-time degradation.

Comparing tiers? See the Free vs Cloud split.

Software

×

(1) 919-845-7601 9AM-5PM EST

Complete this form and we will get back to you as soon as possible. Please note: Technical support questions should be posted to our online support system.

About You
How Many Concurrent Users