eG Monitoring
 

Measures reported by MsSqlSysProcsTest

This test reports the number and state of sessions of each user who is currently connected to the MS SQL server. Using the metrics reported by this test, administrators can promptly isolate idle sessions and suspended sessions, which are a drain on a server's resources. The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Total_processes The total number of sessions currently open on the server. Number  
Running_processes The number of sessions of this user that are currently active. Number The detailed diagnosis of this measure, if enabled, will provide the complete details of the active sessions of a particular user. Using this information, you can understand how each of the connections were made - i.e., using which program - and from where - i.e., from which host. Note that while the query used by the eG agent for collecting the metrics of this test will be counted as a Running process, the detailed diagnosis of this measure will not include this eG query.
Sleeping_processes The number of sessions initiated by this user that are currently idle. Number The detailed diagnosis of this measure, if enabled, will provide the complete details of the active sessions of a particular user. Using this information, you can understand how each of the connections were made - i.e., using which program - and from where - i.e., from which host.
Rollback_processes The total number of processes that were rolled back. Number The detailed diagnosis of this measure, if enabled, reveals information such as the the ID of the rolledback processes, the user executing each of the processes, the database on which every process is executing, etc. Rollbacks are expensive operations on a server. The detailed measures provided by eG in this regard, enable the user to isolate the specific queries that have rolledback. Further analysis of these queries can be performed, in order to figure out the reason for the rollback and take adequate measures to prevent it from recurring.
Blocked_processes If a process attempts to access a resource that is already in use by another process, then such a process will be blocked until such time that the other process releases the resource. This measures indicates the total number of blocked processes. Number The detailed diagnosis of this measure, if enabled, reveals information such as the ID of the blocked processes, the user executing each of the processes, the database on which every process is executing, the waiting time of the blocked process, etc. These details aid the user in identifying the blocked processes, the processes that are blocking them (i.e. the process that currently holds a lock on the resource), and also the duration for which the processes have been blocked. If a process is found to hold a lock for too long a time, then such processes can be killed so as to free the resource for the corresponding blocked process.
Background_processes Indicates the number of background processes that were currently running. Number The detailed diagnosis of this measure, if enabled, provides the details pertaining to the background processes currently executing.
Dormant_processes Indicates the number of processes of the session that were currently reset. Number The detailed diagnosis of this measure, if enabled, reveals the details pertaining to the dormant processes.
Pending_processes Indicates the number of processes that were waiting for a wroker thread to become available. Number The detailed diagnosis of this measure, if enabled, reveals the details pertaining to the processes that are currently waiting for the worker threads.
Suspended_processes Indicates the number of sessions initiated in the SQL server that are currently suspended. Number A session can switch to a suspended state if one/more processes triggered in that session could not continue executing; a possible reason for this could be that the processes are waiting for blocked rows or a blocked table to be released.

The detailed diagnosis of this measure, if enabled, will provide the complete details of the suspended sessions

Spinloop_processes Indicates the number of processes that were waiting for a spinlock to become free. Number Spinlocks are lightweight synchronization primitives which are used to protect access to data structures. They are generally used when it is expected that access to a given data structure will need to be held for a very short period of time. When a thread attempting to acquire a spinlock is unable to obtain access it executes in a loop periodically checking to determine if the resource is available instead of immediately yielding. After some period of time a thread waiting on a spinlock will yield before it is able to acquire the resource in order to allow other threads running on the same CPU to execute.

Ideally, the value of this measure should be zero. A high value of this measure indicates that the resources are locked by unresponsive processes which would eventually lead to the slow responsiveness of the SQL server.

The detailed diagnosis of this measure, if enabled, provides the details pertaining to the processes that were waiting for a spinlock to become free.