Accuracy

Some things to consider:

  • A small window size reduces the accuracy of CPU time balancing. The error is ±(tick_size / window_size). For example, if the window size is 10 milliseconds, the accuracy is about 10 percentage points.
  • If a partition opportunistically goes over budget (because other partitions are using less than their guaranteed budgets), it must pay back the borrowed time, but only as much as the thread scheduler remembers (i.e. only the borrowing that occurred in the last window).

    A small window size means that a scheduler partition that opportunistically goes over budget might not have to pay the time back. If a partition sleeps for longer than the window size, it won't get the time back later. So load balancing won't be accurate over the long term if both the system is loaded, and some partitions sleep for longer than the window size.

  • If the window size is small enough that some partition's percentage budget becomes less than a tick, the partition will get to run for at least 1 tick during each window, giving it 1 tick / window_size_in_ticks per cent of the CPU time, which may be considerably larger than the partition's actual budget. As a result, other partitions may not get their CPU budgets.
Page updated: