The following table summarizes how the thread scheduler divides time in normal and freetime-by-ratio mode:
Partition state |
Normal |
Freetime-by-ratio |
Usage < budget |
By priority |
By priority |
Usage > budget and there's free time |
By priority |
By ratio of budgets |
Full load |
By ratio of budgets |
By ratio of budgets |
Partitions running a critical thread at any load |
By priority |
By priority |
Note: The scheduler's overhead doesn't increase with the number of threads; but, it may increase with the number of partitions, so you should use as few partitions as possible.