资源调控器状态

资源调控器在 SQL Server 上有两种状态:启用或禁用。这些状态会影响基本操作,以及进行配置更改时的工作负荷处理。本主题介绍了资源调控器的状态以及在下列条件下所发生的情况:

  • 安装资源调控器时的初始配置和状态时。

  • 启用或禁用资源调控器时。

  • 更改资源调控器配置时。

初始配置

一旦安装了资源调控器,就创建了下列工作负荷组及其相应的资源池:

  • 内部组和内部池。

  • 默认组和默认池。

此时资源调控器处于禁用状态。

启用或禁用资源调控器

启用或禁用资源调控器时下列行为是正常的。

启用资源调控器

若要启用资源调控器,请执行 ALTER RESOURCE GOVERNOR RECONFIGURE。启用资源调控器会产生下列结果:

  • 为新连接执行分类器函数,以便可以将其工作负荷分配到工作负荷组。

  • 遵守并强制执行资源调控器配置中指定的资源限制。

  • 禁用资源调控器时所做的任何配置更改会影响在启用资源调控器之前就已存在的请求。

禁用资源调控器

若要禁用资源调控器,请执行 ALTER RESOURCE GOVERNOR DISABLE。禁用资源调控器会产生下列结果:

  • 不执行分类器函数。

  • 所有新连接被自动分类到默认组中。

  • 系统启动的请求被分类到内部工作负荷组中。

  • 所有现有的工作负荷组和资源池设置被重置为其默认值。在这种情况下,到达限制时不触发任何事件。

  • 正常的系统监视不受影响。

  • 禁用资源调控器时可以更改资源调控器的配置,但这些更改只有在启用资源调控器后才会生效。

  • 重新启动 SQL Server 后,资源调控器不会加载其配置,而是仅具有默认和内部的组和池。

更改资源调控器配置

资源调控器的配置更改不会立即生效。配置更改分两步进行:

  1. 发出要更改资源池或工作负荷组设置的相应 ALTER 语句。这会更新配置元数据。

  2. 发出 ALTER RESOURCE GOVERNOR 语句。这会将更新后的元数据复制到内存中的配置。下表说明了常规配置更改何时生效以及何时在资源调控器会话中可以看到。

组件

说明

用户定义的分类

更改对新的会话连接有效。

资源池

长时间运行的会话可能会受更改影响,短时间运行的会话可能会在更改生效之前结束。

工作负荷组

当前会话不受更改影响,但新的连接会受到影响。

除了发出资源调控器 DDL 语句时的常规会话行为之外,资源池或工作组中的各个设置会在您更改这些设置时对处理操作产生可预测的结果和特定的作用。

资源池设置

有四个设置可用来配置资源池。这些设置如下:

  • 最小和最大 CPU 使用百分比。

  • 最小和最大内存使用百分比。

对资源池配置应用更改时,有一个过渡阶段,在此期间会处理活动的请求或等待的请求。下表说明了将更改应用到资源池设置时的会话要求和会话行为。

设置

操作

说明

最小百分比

增加或降低

  • 增加:所有其他资源池都降低到其有效的最大设置。如果所有最小设置加起来等于 100%,则必须降低其他资源池中的某些最小设置,然后增加当前资源池的最小设置。

  • 降低:如果有效的最大设置等于最小设置,则会从资源池中拨出未分配的内存,并且排队请求可能失败。在活动请求完成之前,分配的内存不会从资源池中拨出。

最大百分比

增加或降低

  • 增加:设置更改不产生任何问题。

  • 降低:如果新值大于实际使用率,则没有任何问题。如果新值比实际使用率低,则会有一个过渡阶段。现有的请求在可以进行更改之前完成,新的请求可能会启动失败。

工作负荷组设置

有七个设置可用于配置工作负荷组。这些设置如下:

  • 请求的最大内存分配。

  • 请求的最大 CPU 时间。

  • 请求的资源超时时间。

  • 请求的相对重要性设置。

  • 请求数的工作组限制。

  • 最大并行度。

  • 指定的资源池。

设置

操作

说明

最大内存

增加或降低

  • 增加。不会对活动的查询产生任何作用,这些查询可以获取更多内存(如果可用)。

  • 降低。活动的请求不受影响,但新的请求将占用较少的内存。

最大 CPU 时间

增加或降低

  • 增加。不影响活动的查询。

  • 降低。因某个超出限制的查询而导致触发了某个事件,但该查询继续运行。

资源超时值

增加或降低

已经在队列中等待的查询不会受到影响。新的查询使用新的设置。

重要性

增加或降低

只影响工作负荷组中的查询的 CPU 分配。

最大请求数

增加或降低

  • 增加。不影响现有的查询。

  • 降低。现有的查询不受影响,但新的查询在等待并可能会超时。

最大并行度

增加或降低

只影响新的查询的编译和执行。

指定的资源池

更改

活动请求继续使用现有的资源池及其设置。新的请求使用新的资源池及其设置。

资源调控器设置

除了更改资源调控器配置或更改资源调控器的当前状态之外,您还可以使用 ALTER RESOURCE GOVERNOR RECONFIGURE 语句创建或更改分类器函数。

在注册新的分类器函数时,您可以更改将新的连接路由到不同工作组时所用的规则。此更改不影响已分类的查询,仅影响新的查询。