While looking into an authentication problem I discovered this ’new’ header sent back
from a SharePoint 2010 machine.
Health Score? hmmm I thought, what’s the max and what’s the min
values. Is this good/bad? or don’t care?
So SharePoint 2010 has several Throttling features it used such as Client
Auto Back-off which predominately when triggered, prioritises HTTP requests
– such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP
connections are throttled.
Here is one MS
page that barely describes the Header – could do with updating that one.
SharePoint 2010 determines the health of a server by initially looking
at system counters.
Let’s dig further.
Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics
section which I thought would be a great place to start. I found a
SPWebFrontEndDiagnosticsPerformanceCounterProvider class (amongst
others there’s a SPDatabaseServer class as well)
The line above collection = . refers to the following collection
So putting all this together, the performance counters are:
- WebAppPool – “SharePoint Foundation”
- Global Heap Size
- Native Heap Count
- Process ID
- OWSTimer & W3WP
- Private Bytes
- Processor (_total)
- Processor Time
It appears the main class behind all of this is
SPHttpThrottleSettings where it appears that the throttling setting
is turned off in ’Single-Server’ deployments.
Digging further I came across the big-daddy class of it all (I think) –
I also noticed another method on this class SetupRegKeyHealthScore.
Where HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore is
the actual value you want to assign.
A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling
(letting your clients know as well).
There’s many other things here, but I’ve got to head swimming.
Hope we unraveled this mystery a little more.