Displays how much time each Adaptive Server thread is consuming at the operating system level. This is the portion of time the thread was actually on a CPU. “Pool Summary” indicates the percentage of thread use across thread pools. “Server Summary” describes the percentage of thread use across Adaptive Server.
“User time” reports the percentage of time during the sp_sysmon sample interval the thread was executing code in the user space (that is, running in Adaptive Server). “System time” reports the percentage of time during the sp_sysmon sample interval the thread was executing code in system space (that is, running in the operating system kernel). This distinction is unrelated to “User Busy” and “System Busy” reported in the Engine Utilization (Tick %) section.
sp_sysmon may show some
threads with more than 100% utilization because of the
way Adaptive Server collects data.
When examining the “Thread Utilization (OS%)” output, consider:
The value for “Thread Utilization (OS %)” should be higher than the value for “Engine Utilization (Tick %).” The difference between them is greatest when idle timeout is set to a high value and the workload is intermittent. For example, an engine that is 100% idle but has an idle timeout of -1 shows 0% engine utilization but 100% thread utilization.
A value for “Engine Utilization (Tick %)” that is greater than the value for “Thread Utilization (OS %)” may indicate that the host is low on CPU resources. This generally indicates that the engine did not receive as much CPU time as needed, which can lead to significant performance degradations. The loss of performance may be severe if spinlock contention is also involved.
High “Thread Utilization (OS %)” values for disk or network tasks may indicate that the system requires an additional disk or network task. For example, if the network task thread is 80% busy but the engine utilization is low, then a saturated network task is likely starving the engine for work. Adding a network task with sp_configure "number of network tasks" may alleviate the situation.
At the end of “Thread Utilization (OS %),” sp_sysmon reports how many CPU units Adaptive Server threads are consuming, and the throughput of committed transactions per CPU. For example:
Adaptive Server threads are consuming 5.6 CPU units. Throughput is 8238.0 commited xacts per CPU unit.
You can compare the number of CPU units consumed to the physical hardware available to Adaptive Server. For example, if your system has 8 cores and 2 threads per core, it has a total of 16 available CPU units. If Adaptive Server is utilizing 6 CPU units, the host can perform additional work. However, if Adaptive Server is utilizing 14 CPU units, there is little capacity left and the subcore threads are heavily utilized.