Ewald Cress continues his look at schedulers:
To simplify things initially, we’ll forget about hidden schedulers and assume hard CPU affinity. That gives us an execution environment that looks like this:
-
Each CPU is physically tied to a scheduler.
-
Therefore, out of all the workers in the system, there is a subset of workers that will only run on that CPU.
-
Workers occasionally hand over control of their CPU to a different worker in their scheduler.
-
At any given moment, each CPU is expected to be running a worker that does something of interest to the middle or upper layers of SQL Server.
-
Some of this useful work will be done on behalf of the worker’s scheduler siblings.
-
However, a (hopefully) tiny percentage of a worker’s time is spent within the act of scheduling.
As usual, this is worth the read.