适用于:2013
2016
2019
Subscription Edition
SharePoint in Microsoft 365
概述
请求管理器是 SharePoint Server 中的功能,使管理员能够管理传入的请求并确定 SharePoint Server 如何路由这些请求。
当遇到请求时,请求管理器使用配置的规则来执行以下任务:
- 拒绝可能有害的请求进入 SharePoint 场。
- 将正常请求传送到可用服务器。
- 手动优化性能。
管理员或自动化过程提供给请求管理器的信息决定了传送的请求的有效性。
下表介绍了可能的应用场景和请求管理器可能采用的解决方案。
领域 | 应用场景 | 解决方案 |
---|---|---|
可靠性和性能 | 将新请求传送到性能较差的 Web 前端可能增加延迟和导致超时。 | 请求管理器可传送到性能较好的前端 Web 服务器,同时保持性能较差的前端 Web 服务器的可用性。 |
来自用户和自动程序的请求具有相同的优先级。 | 通过限制来自自动程序的请求来改为优先处理来自最终用户的请求。 | |
可管理性、责任和容量规划 | SharePoint Server 失败或普遍响应速度较慢,但难以确定失败或速度缓慢的原因。 | 请求管理器可以将特定类型的所有请求(例如搜索、用户配置文件或 Office Online)发送到特定计算机。 当计算机失败或速度慢时,请求管理器可发现问题所在。 |
所有前端 Web 服务器必须能够处理请求,因为它们可能发送到任何前端 Web 服务器。 | 请求管理器可向指定用来处理请求的前端 Web 服务器发送多个或单个请求。 | |
扩展限制 | 硬件扩展受负载平衡器的限制 | 请求管理器可执行应用程序传送和根据需要进行扩展,以便负载平衡器能在网络级别快速地平衡负载。 |
设置和部署
请求管理器的任务是确定两个问题:一个是 SharePoint 场是否会接受某个请求,如果答案为"是",则另一个问题是 SharePoint Server 要将该请求发送到哪个前端 Web 服务器。 请求管理器的三个主要功能组件是请求传送、请求限制和优先级设置以及请求负载平衡。 这些组件将确定如何处理请求。 请求管理器管理每个 Web 应用程序上的所有请求。 由于请求管理器是 SharePoint Server Internet Information Services (IIS) 模块的一部分,因此它仅影响 IIS 承载的请求。
When a new request is received, Request Manager is the first code that runs in a SharePoint farm. Although Request Manager is installed during setup of SharePoint Server on a front-end web server, the Request Management service is not enabled. 可以使用 Start-SPServiceInstance 和 Stop-SPServiceInstance cmdlet 分别启动和停止 SharePoint 管理中心网站上的“请求管理服务”实例或“管理服务器上的服务”页。 可以使用 Set-SPRequestManagementSettings Microsoft PowerShell cmdlet 的 RoutingEnabled 或 ThrottlingEnabled 参数更改请求管理器的属性。
注意
没有用于配置请求管理器的属性的用户界面。 Windows PowerShell cmdlet 是执行此任务的唯一方法。
请求管理器具有两个支持的部署模式: 专用 和 集成 。
专用模式
前端 Web 服务器组专用于管理请求。 专用于请求管理器的前端 Web 服务器位于自己的场中,该场位于硬件负载平衡器 (HLB) 和 SharePoint 场之间。 HLB 会将所有请求发送到请求管理器前端 Web 服务器。 在这些前端 Web 服务器上运行的请求管理器将决定它要将请求发送到哪个 SharePoint 前端 Web 服务器,然后传送这些请求。 根据传送和限制规则,请求管理器可能会忽略某些请求而不将它们发送到其他服务器。 SharePoint 前端 Web 服务器在处理请求时执行其正常的任务,然后通过运行请求管理器的前端 Web 服务器将响应发送回客户端。
请注意,所有场均设置为 SharePoint 场。 所有前端 Web 服务器都是 SharePoint 前端 Web 服务器,每个服务器都可以执行与任何其他服务器相同的工作。 场之间的差别在于请求管理器前端 Web 服务器启用了请求管理器。
专用模式适用于物理计算机现成可用的情况下的大型部署。 如果能为请求管理器创建单独的场,则会获得两个好处:请求管理器和 SharePoint 进程不会争夺资源,您可以单独扩展一个管理器而不必同时扩展其他管理器。 这就提高了您对每个角色的性能的掌控度。
- 请求管理器和 SharePoint 进程不会争夺资源。
- 您可以单独扩展每个场,从而提高了对每个场的性能的掌控度。
集成模式
在集成模式部署中,所有 SharePoint 前端 Web 服务器都运行请求管理器。 硬件负载平衡器会将请求发送给所有前端 Web 服务器。 当前端 Web 服务器收到请求时,请求管理器将决定如何处理它:
- 允许本地处理该请求。
- 将该请求传送到其他前端 Web 服务器。
- 拒绝该请求。 集成模式适用于很多物理计算机不是现成可用的情况下的大型部署。 此模式允许请求管理器和其余 SharePoint Server 在所有计算机上运行。 此模式通常用于本地部署。
配置
请求管理器包含两个可配置部分: 常规设置 和 决策信息 。 常规设置是让请求管理器可供使用的参数,如启用或禁用请求传送和请求限制以及优先级设置。 决策信息是在传送和限制过程中使用的所有信息,如传送和限制规则。
注意
您在服务器场上配置请求管理器,功能在 SharePoint Server 2013 中的 Web 应用程序级别以及 SharePoint Server 2016 和 2019 中的 Web 应用程序角色中发生。
常规设置
默认情况下,请求传送、请求限制和优先级设置处于启用状态。 您可以使用 Set-SPRequestManagementSettings cmdlet 更改请求传送和请求限制以及优先级设置的属性,并选择传送加权方案。
下表介绍了配置情况和要使用的 Windows PowerShell 语法。
情况 | Microsoft PowerShell 示例 |
---|---|
为所有 Web 应用程序启用传送和限制 | Get-SPWebApplication | Set-SPRequestManagementSettings -RoutingEnabled $true -ThrottlingEnabled $true |
为所有 Web 应用程序启用使用静态加权的传送 | Get-SPWebApplication | Get-SPRequestManagementSettings | Set-SPRequestManagementSettings -RoutingEnabled $true -ThrottlingEnabled $false -RoutingWeightScheme Static |
在某些情况下,有多个前端 Web 服务器会成为某个特定请求的合适目标。 在这种情况下,SharePoint Server 默认会随机地统一选择一台服务器。 其中一个传送加权方案是静态加权传送。 在此方案中,静态权重与前端 Web 服务器关联,以便请求管理器在选择过程中总是优先选择较高的静态权重。 此方案可用于增加功能较强的前端 Web 服务器的权重,并减少功能较弱的前端 Web 服务器的压力。 每个前端 Web 服务器都有与之关联的静态权重。 权重的值是任何整数值,默认值为 1。 小于 1 的值表示较低的权重,大于 1 的值表示较高的权重。
另一个加权方案是运行状况加权。 在运行状况加权传送中,将优先选择具有接近于零的运行状况分数的前端 Web 服务器,且发送到具有较高的运行状况分数值的前端 Web 服务器的请求较少。 运行状况权重的值在 0 和 10 之间,其中,0 表示运行状况最佳,因而将获得最多请求。 默认情况下,所有前端 Web 服务器都将设置为运行正常,因此它们具有相同的权重。 SharePoint 的基于运行状况分数的监控系统将为服务器分配权重并发送运行状况分数值作为对请求的响应中的标头。 请求管理器使用相同的运行状况分数并将该分数存储在本地内容中。
决策信息
决策信息适用于传送目标、传送规则和限制规则。
传送目标
请求传送确定在为请求选择传送池后可用的传送目标。 传送目标的范围当前仅针对前端 Web 服务器,但请求管理器的设计不会排除到应用程序服务器的传送。 场中的前端 Web 服务器的列表是使用配置数据库自动维护的。 希望更改该列表的管理员必须使用合适的传送 cmdlet 才能获取、添加、设置和删除传送目标。
下表介绍了各种传送目标任务和要使用的关联 Windows PowerShell 语法。
任务 | Microsoft PowerShell 示例 |
---|---|
返回所有可用 Web 应用程序的路由目标列表 | Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available |
为指定 Web 应用程序添加新的传送目标。 | $web=Get-SPWebApplication -Identity <URL of web application> |
编辑指定 Web 应用程序的现有路由目标的可用性和静态权重。 | $web=Get-SPWebApplication -Identity <URL of web application> |
从指定的 Web 应用程序中删除路由目标。 | $web=Get-SPWebApplication -Identity <URL of web application> |
注意
不能删除服务器场中的前端 Web 服务器。 相反,可以使用 Set-SPRoutingMachineInfo cmdlet 的可用性参数使其不可用。
传送和限制规则
请求传送和请求限制以及优先级设置是使用规则来指定操作的决策算法。 这些规则决定了请求管理器如何处理请求。
规则分为 传送规则 和 限制规则 两个类别,分别在请求传送和请求限制以及优先级设置中使用。 传送规则将匹配条件并传送到计算机池。 限制规则将匹配条件并根据已知的计算机运行状况分数施加限制。
请求传送
请求处理是从请求管理器收到新请求到向客户端发送响应的一段时间内按顺序发生的所有操作。
请求处理分为几个部分:
- 请求传送
- 传入请求处理程序
- 请求限制和优先级设置
- 请求负载平衡
传入请求处理程序
传入请求处理程序的作用是确定请求管理器是否应处理请求。 如果禁用了请求限制和优先级设置且请求管理器队列为空,请求管理器会将请求传送到运行当前前端 Web 服务器的 SharePoint Server。 如果启用了请求限制和优先顺序,则请求限制和优先顺序将确定在当前前端 Web 服务器上是应允许还是拒绝请求。
传入请求处理程序的处理步骤如下:
- 确定应限制还是传送请求
- 对于传送的请求,将运行负载平衡算法
- 请求传送到负载平衡终结点
请求传送和请求限制以及优先级设置仅在启用之后才会运行,并且在每个场中只传送一次。 请求负载平衡器仅当请求已确定为可传送时才会运行。 传出请求处理程序仅当请求必须发送到其他前端 Web 服务器时才会运行。 传出请求处理程序的作用是向所选前端 Web 服务器发送请求,等待响应以及向源发送回响应。
请求传送
请求传送的作用是选择用于传送请求的前端 Web 服务器。 如果不使用任何已定义的传送规则,则传送方案非常简单,只需随机选择可用的前端 Web 服务器即可。
请求传送的算法被定义为两个部分:请求-规则匹配和前端 Web 服务器选择。
请求-规则匹配
每个规则具有一个或多个匹配条件,该条件包含三个内容:匹配属性、匹配类型和匹配值。
下表介绍了不同类型的匹配属性和匹配类型:
匹配属性 | 匹配类型 |
---|---|
主机名称 | ReqEx |
URL | 等于 |
端口号 | 开头为 |
MIME 类型 | 结尾是 |
例如,管理员将使用以下匹配条件来匹配 http://contoso
请求:Match Property=URL;匹配值= http://contoso
;匹配类型=正则表达式。
前端 Web 服务器选择
前端 Web 服务器选择将使用所有传送规则,无论这些规则是否与给定请求匹配。 匹配的规则具有计算机池,请求会将平衡过的负载发送到任何匹配的规则的计算机池中的任何计算机。 如果请求不与任何请求匹配,则会将平衡过的负载发送到任何可用传送目标。
注意:对于 SharePoint Server 2016 和 2019,使用前端角色类型。
请求传送和优先级设置
对于使用基于运行状况的监控系统的传送请求,请求传送和优先级设置的作用是将传送池精简为使用具有较高的运行状况分数的计算机来处理请求。 如果启用了请求传送,传送池就是选择的任何前段 Web 服务器。 如果禁用了请求传送,传送池仅包含当前前端 Web 服务器。
请求传送和优先级设置可分为两个部分:请求-规则匹配和前端 Web 服务器筛选。 请求-规则匹配发生的情况与在请求传送中发生的情况完全相同。 前端 Web 服务器过滤将限制规则中的运行状况阈值参数与前端 Web 服务器运行状况数据一起使用来确定所选传送池中的前端 Web 服务器是否能处理给定请求。
前端 Web 服务器过滤过程将执行以下步骤:
- 传送池是当前前端 Web 服务器或者请求传送选择的一个或多个前端 Web 服务器。
- 检查所有匹配规则以查找最小的运行状况阈值。
- 删除传送池中具有大于或等于最小运行状况阈值的运行状况分数的前端 Web 服务器。
例如,禁用请求传送,当前前端 Web 服务器具有运行状况分数 7,并创建没有运行状况阈值的规则"阻止 OneNote"(即,运行状况阈值为 0)。
传送池是阈值等于零 (0) 的当前前端 Web 服务器。 因此,当前前端 Web 服务器可提供的最小阈值为零。 由于当前前端 Web 服务器具有运行状况分数 7,因此请求管理器拒绝并删除了请求。
请求负载平衡
请求负载平衡的作用是选择要向其发送请求的单个目标。 请求负载平衡使用传送加权方案来选择该目标。 所有传送目标以权重 1 开始。 如果启用了静态加权,请求负载平衡将使用每个传送目标的静态权重集来调整权重,且该值可以是有效的整数。 如果启用了运行状况加权,请求负载均衡将使用运行状况信息向更健康的目标添加权重,并从不太正常的目标中删除权重。
监控和维护
监控和日志记录对于管理来自请求管理器的请求十分关键。
- 匹配的请求。
- 不匹配的请求。
- 请求的最终决策。
决策可能包含如下有用信息。
- 请求是否被拒绝?
- 选择了哪个前端 Web 服务器,以及从哪个路由池中选择。
- 请求成功还是失败,原因何在?
- 传送、限制和等待前端 Web 服务器响应等每个部分各用了多长时间?
管理员可使用此信息调整传送和限制规则集以优化系统和更正问题。 若要帮助您监控和评估您的场的性能,可以创建性能监视器日志文件并添加以下 SharePoint Foundation 请求管理器性能计数器:
计数器名称 | 说明 |
---|---|
Connections Current | 请求计数器当前打开的连接的总数。 |
Connections Reused / Sec | 相同的客户端连接提出其他请求而未关闭该连接时每秒的连接数。 |
Routed Requests / Sec | 每秒传送的请求数。 该实例确定此计数器跟踪的应用程序池和服务器。 |
Throttled Requests / Sec | 每秒的受限制请求数。 |
Failed Requests / Sec | 结尾是 |
MIME 类型 | 每秒的失败请求数。 |
Average Processing Time | 结尾是 |
MIME 类型 | 处理请求的时间,即评估所有规则并确定传送目标的时间。 |
Last Ping Latency | 上次 Ping 延迟(即,请求管理器的 PING 功能)和实例确定哪个应用程序池和计算机目标。 |
Connection Endpoints Current | 所有活动连接所连接的终结点的总数。 |
Routed Requests Current | 未完成的传送请求的数量。 该实例确定哪个应用程序池和计算机目标。 |
除了创建性能监视器日志文件,还可以使用以下Microsoft PowerShell 语法启用详细日志记录级别:
Set-SPLogLevel "Request Management" -TraceSeverity Verbose