Reports the number of times each Adaptive Server engine yielded to the operating system. When an engine yields, it goes to sleep for a brief period of time. If there are no runnable tasks found when it wakes up, it goes to sleep again. The output is arranged according to thread pools and the engines associated with them. For each engine, sp_sysmon reports:
Full Sleeps – the engine slept for its full sleep interval (that is, it did not receive a runnable task while it was sleeping). A full sleep most likely leads to another sleep. However, full sleeps do not contribute to latency.
Interrupted Sleeps – the engine was prematurely woken from its sleep by a runnable task. An interrupted sleep most likely leads to a scheduled task. Interrupted sleeps may contribute to latency.
“% of total” data is the percentage of times an engine yielded as a percentage of the combined yields for all engines.
“Total CPU Yields” reports the combined data over all engines.
When an engine is not busy, it yields to the CPU after a period of time related to the idle timeout parameter.
Engine Utilization Low/CPU Yields Low – a higher value for the I/O Busy% column than for the CPU Busy% column indicates a large amount of pending I/O. To solve bottlenecks in I/O processing, look for changes you can make at the operating system level.
Engine Utilization Low/CPU Yields High – engine is inactive.
Engine Utilization High/CPU Yields Low – Adaptive Server is very busy and has jobs to run. Adding engines is likely to help performance. This value should also correlate with higher values for “Average Runnable Tasks.”
Engine Utilization High/CPU Yields High – this should be the case when a normal number of user connections are running simple queries. Adding engines is unlikely to help, unless “Engine Utilization” is very high, or “Average Runnable” tasks is high.
Most engine yields should be “full sleeps.” Overall latency may be increasing if “interrupted sleeps” account for more than 20% of total engine yields. To reduce latency, consider increasing the value for idle timeout. However, this adds to the CPU usage.
See alter thread pool in the Reference Manual: Commands.