|
Measures reported by MsSqlThreadStTest
A SQL Server worker thread, also known as worker or thread, is a logical representation of an operating system thread. When executing serial requests, the SQL Server Database Engine will spawn a worker to execute a single active task. When executing parallel requests in row mode, the SQL Server Database Engine assigns a worker to coordinate the child workers responsible for completing tasks assigned to them, called the parent thread/coordinating thread. The parent thread has a parent task associated with it. The parent thread is the point of entry of the request and exists even before engine parses a query.
The more threads the SQL Server Database Engine can spawn, the more requests can be executed in parallel. If sufficient threads are not available in the server or more threads are idle / over-utilized, then, processing bottlenecks in the server become inevitable! To prevent request processing delays therefore, administrators must first understand how the threads in the request processing are utilized, proactively detect potential contention for threads, and reconfigure the target Microsoft SQL server to spawn more threads. This is where the MsSqlThreadStTest helps!
This test monitors the thread utilization on the target Microsoft SQL server, and alerts administrators to insufficiency of threads and excessive/abnormal utilization. Additionally, the test also tracks the idle threads and threads and in the queue, thus revealing if the SQL Server Database Engine is configured to process the workload. In the process, administrators are also notified on the count of threads that are waiting for CPU resources.
Outputs of the test : One set of results for the Microsoft SQL Server that is being monitored
The measures made by this test are as follows:
| Measurement |
Description |
Measurement Unit |
Interpretation |
| MaximumThreads |
Indicates the number of worker threads that are available on the target SQL server to process query requests, login, logout, and similar application requests. |
Number |
The default value for max worker threads is 0. This enables the Microsoft SQL Server to automatically configure the number of worker threads at startup. The default setting is best for most systems. However, depending on your system configuration, setting max worker threads to a specific value sometimes improves performance. |
| ActiveThreads |
Indicates the number of threads that are actively running on the SQL server. |
Number |
This measure is a good indicator of workload on the target Microsoft SQL server. |
| IdleThreads |
Indicates the number of threads that are in idle state. |
Number |
A low value is preferred for this measure. |
| FreeThreads |
Indicates the number of threads that are available for use on the server. |
Number |
|
| ThreadUtilization |
Indicates the percentage of threads utilized on the server. |
Percent |
A high value for this measure indicates that you may need to increase the maximum thread count. |
| QueuedThreads |
Indicates the number of threads that are in the queue. |
Number |
A high value for this measure indicates that you may need to increase the maximum thread count.
The detailed diagnosis of this measure reveals schedular ID, session ID, name of the database, name of the login user, name of the host , the program name, wait type, how long the threads are in queue, CPU time, total elapsed, time and SQL time. |
| ThreadWaitsFrCpu |
Indicates the number of threads that are currently waiting for CPU resources. |
Number |
If the value of this measure is high, it indicates that a large number of queries, which are assigned to the scheduler for processing, are waiting for its turn to run due to insufficient CPU resources.
The detailed diagnosis of this measure reveals schedular ID, session ID, name of the database, name of the login user, name of the host , the program name, wait type, how long the threads are waiting, CPU time, total elapsed, time and SQL time. |
|