Building Block: Performance Monitors and Request Throttles

Applies to: SharePoint Foundation 2010

Microsoft SharePoint Foundation has an extensible system for monitoring Windows Server 2008 performance counters and for throttling HTTP requests when those counters indicated that a worker process is too busy to handle all the requests that it is receiving.

Object Model for Performance Monitors and Request Throttles

Most of the classes and members you can use to extend the system are located in the Microsoft.SharePoint.Utilities namespace. The most important classes include the following:

  • SPHttpThrottleSettings   An object of this type provides management and configuration settings for performance monitoring and HTTP request throttling. There is one such object for each Web application.

  • SPSystemPerformanceCounterMonitor   An object of this type monitors for the value of a specific Windows Server 2008 performance counter.

  • SPBucketHealthScoreCalculator   A health-score calculator that computes a score for a specific performance value based on the bucket of values into which the value falls. A "bucket" is a subrange of possible values. The health of a worker process, as determined by the health scores of its monitors, controls when the process enters throttling mode and begins blocking certain classes of HTTP requests.

  • SPRequestThrottleClassifier   An object that defines a class of HTTP requests and specifies whether matching requests are throttled when the server is busy, throttled when the server has been continuously busy for at least 60 seconds, or not throttled at all.

The collections of registered monitors and request classifiers are persisted as the HttpThrottleSettings property of the SPWebApplication class.

Building Block: Health Rules

More Information about Development with Performance Monitors and Request Throttles

Detailed information about development with the SharePoint Foundation system of performance monitors and HTTP request throttles is located in the Request Throttling section of this SDK.