Hello all,
I've done a couple of hours searching for answers to this question, but
couldn't find a definite answer. I'm hoping someone here can just give me a
quick answer.
I have a dual processor server. Currenty it is set with web-gardening
turned off. I have set the threads in machine.config as per microsoft
recommendations:
maxConnections: 12 * #CPU = 24
maxIOThreads: 100
maxWorkerThreads: 100
minFreeThreads: 88*#CPU = 176
minLocalRequestFreeThreads: 76*#CPU=152
Now with webgardening turned off this seems to be working fine. The server
is responsive etc. But always trying to squeeze that last bit of
performance out, I figured I'd try with webGarden on. I didn't change any
of the numbers above. From what MSDN and documentation says, maxIOThreads
and maxWorkerThreads are per CPU, so I should have 200 threads created (2
processors). But I didn't see anywheres if minFreeThreads and
minLocalRequestFreeThreads are / CPU. Problem is, when I enable Webgarden,
I get an error as soon as aspnet_wp starts (first page hit) saying
"minFreeThreads must be less then thread pool". Which makes sense, EXCEPT
that maxIOThreads and maxWorkerThreads are per CPU so should be 200 each.
Also, I don't get this error if webGarden is disabled (remember, I didn't
change machine.config at all except to enable webGarden, didn't change any
of the numbers).
Has anyone seen this before? I tried finding a similar "formula" for
machine.config for multi-processor machines, but no luck.
Is there even any point to this? the documentation makes it sound like if I
don't enable webgarden then I only have a single aspnet_wp process and hence
I'm only using a single CPU. Is that true?? Do I need webGarden to make
use of both my processors to the full?
Also, those processor have hyperthreading, so in TaskManager, it looks like
I have 4 CPUs, so is ASP.NET alson going to assume I have 4 processors? (I
could set CPUMask if necessary to prevent this).
Thanks in advance,
Jeremy