3

We have noticed that programs that run via Task Scheduler perform worse than when launched by the user. It seems others have noticed this too. It's apparently because by default, Task Scheduler runs programs at a lower priority. Changing the priority confirms it: the programs perform as they should.

Intuitively this would make sense if other things were going on in the system: higher priority programs get their turn first, and then whatever is left, to consume all of the machines resources. But this isn't the case: our server isn't doing anything else. This background task is effectively the only thing running, and yet it's reading from disk and transfering over the network at a small fraction of what it's capable of. This might make sense if we were talking about a laptop (need to conserve battery), but we're talking about Windows Server 2019 here (aka Windows 10 1809).

Why doesn't Windows consume its resources to the fullest if nothing is competing for them?

Sam Rueby
  • 646
  • 3
  • 8
  • 16
  • 1
    Do you want something different to "because they designed their task scheduler like this"? Because that's what they did, I _think_ from Server 2008 (R2) onwards. – Lenniey Jun 05 '19 at 15:01
  • @Lenniey Maybe. Do you know of any resources where they say this? – Sam Rueby Jun 05 '19 at 15:14
  • 1
    [here](https://docs.microsoft.com/en-us/windows/desktop/taskschd/tasksettings-priority): _The priority level (0-10) of the task. The default is 7._ and: _Priority level 0 is the highest priority, and priority level 10 is the lowest priority. The default value is 7. Priority levels 7 and 8 are used for background tasks, and priority levels 4, 5, and 6 are used for interactive tasks._ and [here](https://docs.microsoft.com/de-de/windows/desktop/ProcThread/scheduling-priorities) – Lenniey Jun 05 '19 at 15:22
  • Those links don't explain why Windows won't use all of its resources when only lower-priority processes are running. – Sam Rueby Jun 05 '19 at 15:41
  • Perhaps they want to have some cores/threads that are ready for immediate execution for more critical tasks that may arise at any unknown moment from user input or other things happening? Just a theory since I don't know of any better answer. – mberna Apr 04 '21 at 04:40

0 Answers0