We are trying to upgrade to .NET Core 3.1. But we that Environment.ProcessorCount reports different values on .NET Core 3.1.
We use the official SDK docker images. I've attached 2 sample projects, 1 for 3.0 and 1 for 3.1
Repro
To repro use the following command to run:
1. docker build . -f Dockerfile
2. docker run --cpus=1 <image_built_from_#1>
Outcome
3.0
The number of processors on this computer is 1.
3.1
The number of processors on this computer is <actual_node_cpus>.
So if a machine has 8 cores, in 3.0 a container assigned 1 core we still got an outcome of 1, while in 3.1 the outcome is 8.
Is this change by design ?
Were are also seeing much higher cpu consumption on the 3.1 containers, our initial theory that the runtime is thinking it has more cores while it does not.
repro.zip