I'm trying to use a Dell Poweredge R900 I got secondhand as a compute pool (4x quadcores gives me 16 cores to run simulations with). It's running windows server 2008 R2 enterprise at the moment.

I'm running custom .net code, and can specify the number of threads to be anything I want. Typically (e.g. on my windows 10 quadcore machine), a thread rails a cpu core for 10 minutes or so. If I launch 7 threads on my server though (as an example), I see 7 of my 16 cores light up at 20% utilization. If I launch 16 threads, I see all 16 cores at ~20%. So I tried to fire off 48 threads expecting my 16 cores now should have 3 threads each and thus hit 60% utilization, but no dice. I get 20% again (and each thread is visibly 3x slower, so all 3 threads per core get processed). No matter how many threads I fire off, my utilization never goes beyond 20% per core. Now, If I launch 2 instances of my code at 16+ threads each, all cores go to 40%. A third instance, 60%. So it's not a FSB limit or anything. Something has to be choking each instance down to 20% per core.

I can't for the life of me figure out where the bottleneck is here. is this a windows server thing? A dell BIOS thing? I've flipped the OS from being optimized for background processes to being optimized for programs... Didn't seem to have an impact. I'm totally new to windows server, so any ideas would be greatly appreciated!


It seems that Server 2008 R2 has a way of limiting CPU utilization. I found info on it here and would recommend you read it and perhaps try to set your own limits:


Also, pls note that in the comment section of the above link, there are 2 links to further explanations on the subject...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.