CLR Lock Threads Test

This test monitors the thread locking activity on the ASP .NET objects in the Voyager user interface.

Target of the test : The ASP .NET objects in the Voyager user interface

Agent deploying the test : An internal agent

Outputs of the test : One set of results for the ASP .NET objects in the Voyager user interface being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The IP address of the host for which this test is to be configured.

Port

Refers to the port at which the specified host listens to.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Queue length rate

Indicates the rate at which threads are waiting to acquire some lock in the application.

Threads/Sec

 

Recognized threads rate

Indicates the number of threads per second that have been recognized by the CLR.

Threads/Sec

The recognized threads 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 the same thread ID re-entering the CLR or recreated after thread exit are not counted twice.

Queue length peak

Indicates the total number of threads that waited to acquire some managed lock during the last measurement period.

Number

A high turnover rate indicates that items are being quickly added and removed, which can be expensive.

Recognized threads

Indicates the total number of threads that have been recognized by the CLR during the last measurement period.

Number

The recognized threads 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 the same thread ID re-entering the CLR or recreated after thread exit are not counted twice.

Contention threads

Indicates the total number of times threads in the CLR have attempted to acquire a managed lock unsuccessfully.

Number

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.