I have a C# program that process a long batch of files. The processing is done with a varying number of Task.Run threads. While this is very efficient and expected under Windows 10, strange stuff happens on Windows 2016 or Windows 2019 Dual core servers:
- The CPU% isn't maxing even if many tasks are run in parallel
- The total file processing speed remains pretty much the same with 10 20 or 30 tasks in parallel.
- The only way to get more throughput is to run several instances of the same application.
Is this a normal server behavior? Can it be configured to "work harder on each instance" like Windows10?