Server Monitoring
Find Hidden Bottlenecks Fast
These add-on modules for Load Tester™ track the major .NET and IIS performance areas: CPU usage, memory, disk I/O, and network. About 23 statistics are automatically collected and the values automatically integrated into load testing/performance reports. The top six most-important parameters are then analyzed, the problem areas are flagged, and advice is provided on what the performance should be under normal circumstances.
ASP .NET | Description |
---|---|
Active Sessions | The number of sessions active |
ASP.NET Application Restarts | Number of times the application has been restarted during the sample period |
Application Restarts | Number of times the application has been restarted during the sample period |
Cache Entries | Total number of entries within the ASP.NET application cache (both internal and user added) |
Cache Hit Ratio | Ratio of hits from all ASP.NET application cache calls. Note that the Windows counter calculates this value as a historical average since the last restart, but Load Tester does not. |
Cache Hits | Number of hits from all ASP.NET application cache calls. |
Cache Misses | Number of misses from all ASP.NET application cache calls. |
Cache Turnover Rate | Number of additions and removals to the total ASP.NET application cache per second. |
Compilations | Number of .asax, .ascx, .ashx, .asmx, or .aspx source files dynamically compiled. |
Current Requests | The current number of ASP.NET requests, including those that are queued, currently executing, or waiting to be written to the client. Under the ASP.NET process model, when this counter exceeds the requestQueueLimit defined in the processModel configuration section, ASP.NET will begin rejecting requests. |
ASP.NET Disconnected Requests | The number of requests that were disconnected due to communication failure. |
ASP.NET Errors/sec | Rate of errors occurred. |
ASP.NET Last Request Execution Time |
The amount of time that it took to execute the most recent ASP.NET request. |
Pipeline Instance Count | Number of active ASP.NET application pipeline instances. |
Queued Requests | The number of ASP.NET requests waiting to be processed. |
Rejected Requests | The number of ASP.NET requests rejected because the request queue was full. |
Request Wait Time | The amount of time the most recent request was waiting in the queue. |
Requests Executing | The number of ASP.NET requests currently executing |
Requests Not Found | The number of ASP.NET requests for resources that were not found. |
Requests Not Authorized | Number of requests failed due to unauthorized access. |
Requests Queue Length | The number of ASP.NET requests in the application request queue. |
Requests Succeeded | The number of requests that executed successfully during the sample period. |
Requests Timed Out | The number of requests that timed out. |
Requests/sec | The number of ASP.NET requests executed per second. |
Sessions Timed Out | The number of sessions that have been closed due to their idle time exceeding the AutoDisconnect parameter for the server. Shows whether the AutoDisconnect setting is helping to conserve resources. |
Sessions Abandoned |
The number of sessions that have been explicitly abandoned. |
Unhandled Execution Errors/sec |
Rate of unhandled errors. |
.NET CLR | Description |
---|---|
Class loader Heap Size |
The current size (in bytes) of the memory committed by the class loader across all AppDomains. (Committed memory is the physical memory for which space has been reserved on the disk paging file.) |
Current AppDomains |
The current number of AppDomains loaded in this application. AppDomains (application domains) provide a secure and versatile unit of processing that the CLR can use to provide isolation between applications running in the same process. |
Current Assemblies | The current number of Assemblies loaded across all AppDomains in this application. If the Assembly is loaded as domain-neutral from multiple AppDomains then this counter is incremented once only. Assemblies can be loaded as domain-neutral when their code can be shared by all AppDomains or they can be loaded as domain-specific when their code is private to the AppDomain. |
Exceptions / sec | The number of exceptions thrown per second. These include both .NET exceptions and unmanaged exceptions that get converted into .NET exceptions e.g. null pointer reference exception in unmanaged code would get re-thrown in managed code as a .NET System.NullReferenceException; this counter includes both handled and unhandled exceptions. Exceptions should only occur in rare situations and not in the normal control flow of the program; this counter was designed as an indicator of potential performance problems due to large (>100/s) rate of exceptions thrown. |
Heap Size | The sum of four other counters; Gen 0 Heap Size; Gen 1 Heap Size; Gen 2 Heap Size and the Large Object Heap Size. This counter indicates the current memory allocated in bytes on the GC Heaps. |
Generation 0 Collections | The number of times the generation 0 objects (youngest; most recently allocated) are garbage collected during the sample period. Gen 0 GC occurs when the available memory in generation 0 is not sufficient to satisfy an allocation request. Higher generation GCs include all lower generation GCs. This counter is explicitly incremented when a higher generation (Gen 1 or Gen 2) GC occurs. |
Generation 1 Collections | The number of times the generation 1 objects are garbage collected. Higher generation GCs include all lower generation GCs. |
Generation 2 Collections | The number of times the generation 2 objects (older) are garbage collected. The counter is incremented at the end of a Gen 2 GC (also called full GC). |
Lock Contention Queue Length | The number of threads in the runtime currently waiting to acquire a lock. |
Lock Contention / sec | Rate at which threads in the runtime attempt to acquire a managed lock unsuccessfully. Managed locks can be acquired in many ways; by the "lock" statement in C# or by calling System.Monitor.Enter or by using MethodImplOptions.Synchronized custom attribute. |
Lock Contentions | The total number of times threads in the CLR have attempted to acquire a managed lock unsuccessfully during the sample period. Managed locks can be acquired in many ways; by the "lock" statement in C# or by calling System.Monitor.Enter or by using MethodImplOptions.Synchronized custom attribute. |
Logical Thread Count | The number of current .NET thread objects in the application. A .NET thread object is created either by new System.Threading.Thread or when an unmanaged thread enters the managed environment. This counters maintains the count of both running and stopped threads. |
Percent Time in GC | The percentage of elapsed time that was spent in performing a garbage collection (GC) since the last GC cycle. This counter is usually an indicator of the work done by the Garbage Collector on behalf of the application to collect and compact memory. |
Physical Thread Count | The number of native OS threads created and owned by the CLR to act as underlying threads for .NET thread objects. This does not include the threads used by the CLR in its internal operations; it is a subset of the threads in the OS process. |
Recognized Thread Count | Displays the number of threads that are currently recognized by the CLR; they have a corresponding .NET thread object associated with them. These threads are not created by the CLR; they are created outside the CLR but have since run inside the CLR at least once. Only unique threads are tracked; threads with same thread ID re-entering the CLR or recreated after thread exit are not counted twice. |
IIS | Description |
---|---|
CGI Requests/sec | The rate CGI requests are received by the Web service. |
Connection Attempts/sec | The rate that connections to the Web service are being attempted |
Current Connections | Current Connections is the current number of connections established with the Web service. |
File Cache Entries | The number of entries in the File Cache. |
File Cache Hits | The number of successful lookups in the file cache. |
File Cache Hit % | The ratio of file cache hits to total cache requests. Note that the Windows counter calculates this value as a historical average since the last restart, but Load Tester does not. |
File Cache Misses | The number of failed lookups in the file cache. |
Extension Requests/sec | The rate that ISAPI Extension requests are received by the Web service. |
URI Cache Entries | The number of entries in the Kernel URI Cache. |
URI Cache Hits | The number of successful lookups in the Kernel URI cache. |
Kernel URI Cache Hit % | The ratio of Kernel URI cache hits to total cache requests. Note that the Windows counter calculates this value as a historical average since the last restart, but Load Tester does not. |
Kernel URI Cache Misses | The number of failed lookups in the Kernel URI cache. |
Requests/sec | The rate HTTP requests are received by the web server. |
URI Cache Entries | The number of entries in the URI Cache. |
URI Cache Hits | The number of successful lookups in the URI cache. |
URI Cache Hit % | The ratio of URI cache hits to total cache requests. Note that the Windows counter calculates this value as a historical average since the last restart, but Load Tester does not. |
URI Cache Misses | The number of failed lookups in the URI cache. |
The following statistics Combined processes for IIS (inetinfo), ASP.NET (aspnet_wp) and the Application Pool Process (w3wp)
IIS, ASP.NET, Application Pool Process |
Description |
---|---|
Handle Count | The number of handles held by known web server processes. |
Private Bytes | The current size of committed memory owned by known web server processes. |
Thread Count | The current number of threads active for known web server processes. |
Virtual Bytes | The current size of virtual address space for known web server processes. |
% Processor Time | The percentage of elapsed time that threads from known webserver processes used the processor to execution instructions. |