Request Management is a new feature of SharePoint 2013. Although the topic of Request Management
does not directly relate to disaster recovery and health.
Request Management allows SharePoint to
understand more about, and control the handling of, incoming requests
for pages, documents, and any other content that SharePoint may deliver
to end users. The Request Management service encompasses a rules engine
to make decisions on delegation of server requests to different servers
in a multi-server SharePoint 2013 farm.
A new SharePoint service called “Microsoft
SharePoint Foundation Web Application” handles Request Management for
the SharePoint farm. The following steps show the location of this
service in Central Administration:
- Navigate to Central Administration.
- Click the link for Manage Services on Server, under the System Settings heading.
- Scroll down the list of services.
- The Microsoft SharePoint Foundation Web Application should have a state of Started.
As the service name suggests, Request
Management is part of the core SharePoint platform and available to all
versions of SharePoint 2013, including Foundation.
Wait a minute! Request Management sounds like
the job of a load balancer, outside the responsibility of SharePoint.
Yes and no. Any administrator responsible for a multi-server and
multiple web-front-end SharePoint farm is probably aware of the role of
a hardware or software load balancer. A load balancer sits in front of
all incoming requests and redirects traffic to one of a pool of web
servers, depending on availability of these servers. Typically, load
balancers make determinations on what server they forward requests to
based on DNS settings and servers that respond to IP requests. Some
more intelligent load balancers can monitor server utilization and
route traffic based on available load. However, SharePoint is a dynamic
platform, which might consist of many different servers, providing
different services. Some servers in a SharePoint farm may provide
multiple functions. Request Management provides better granular control
over which servers receive which requests, based on data in each
request. For example, by looking at the user agent, content type, etc.
within a request, the Request Management service can direct traffic to
a SharePoint server that is best equipped to service a response.
The Request Management Process
Request Management consists of the Web
Application service, running on every SharePoint server in the farm.
This is important to note—Request Management requires knowledge of the
performance and characteristics of each SharePoint server available to
service requests, and this is the job of this service.
The Request Manager (the service running on each SharePoint server) provides three levels of operation:
- Load balancing
- Prioritization
- Throttling and routing
Figure 1
illustrates rule flow of Request Management in SharePoint 2013. Based
on a set of routing rules, Request Management makes decisions on where
to route server requests.
Each potential target server to respond to a
request resides within a machine pool. Each server in a machine pool
has a static weighting and health weighting, which the routing rules
use to determine the eligibility of servers to service requests. Static
weights are numeric values assigned by administrators to weight
particular servers in the farm, whereas SharePoint changes health
weights as the performance and health of servers changes over time.
Routing rules group into execution groups, of which there are three: Execution Group 0, 1, and 2 (Execution Group 2 not shown in Figure 1).
Any rule not explicitly assigned to an execution group assumes
Execution Group 0. Execution groups denote precedence; rules in Group 0
are evaluated before those in Group 1, which are evaluated before those
in Group 2. It is the job of routing rules to determine which machine
pool will service an incoming request.
Throttling rules (not shown in Figure 1)
refuse incoming requests that match these rules, and act as a
gatekeeper for all requests. For example, requests that have
inappropriate parameters or request data might trigger a throttling
rule.
The Request Manager evaluates which server shall service an incoming request as follows:
- Compare the request with a set of throttling rules; if the request matches any of these rules then refuse the request.
- Evaluate the request by matching it against all routing rules in
Execution Group 0, followed by Execution Group 1, and then Execution
Group 2.
- Depending on matching to routing rules in a specific execution
group, route the request to the machine pool associated with the
routing rule satisfied by the request.
Any routing rule can route requests to any
machine pool. The presence of the routing rule in one of the execution
groups ascertains priority. Thus, rules in Execution Group 0 will
evaluate first and target machine pools determined best equipped to
satisfy the requests.