资源调控器资源池

在 SQL Server 资源调控器中,资源池表示数据库引擎实例的部分物理资源。 每个资源池均可包含一个或多个工作负荷组。 在某个会话启动时,资源调控器分类器会将此会话分配给一个特定的工作负荷组,并且此会话必须使用分配给该工作负荷组的资源运行。

资源池概念

资源池或池表示服务器的物理资源。 您可以将池看作 SQL Server 实例内部的一个虚拟 SQL Server 实例。

池有两个部分。 一部分不与其他池重叠,这使得资源预留最少。 另一部分与其他池共享,支持最大可能的资源消耗。 在此版本的资源调控器中,通过为每个资源指定下列项之一来设置池资源:

  • CPU 的 MIN、MAX 或 CAP

  • 内存的 MIN 或 MAX

对于每个这种资源,MIN 表示池的最少保证可用资源,MAX 表示池的最大大小。

CPU 的 CAP 值表示硬盘最大值。 将不会使用高于该值的 CPU 容量。

所有池的 MIN 值之和不能超过服务器资源的 100%。 MAX 值和 CAP 值可以设置为 MIN 和 100% 之间(包括 100%)的范围内的任何值。

如果某个池定义了非零 MIN,将重新调整其他池的有效 MAX 值。 从 100% 中减去为某个池配置的 MAX 值的最小值以及其他池的 MIN 值之和。

下表说明了上述概念。 该表显示了内部池、默认池和两个用户定义池的设置。 下面的公式用于计算有效 MAX 百分比和共享百分比。

  • Min(X,Y) 表示 X 和 Y 中的较小值。

  • Sum(X) 表示所有池的 X 值之和。

  • 总计共享百分比 = 100 - sum(MIN %)。

  • 有效 MAX 百分比 = min(X,Y)。

  • 共享百分比 = 有效 MAX 百分比 - MIN 百分比。

池名称

MIN 百分比设置

MAX 百分比设置

计算的有效 MAX 百分比

计算的共享百分比

注释

内部

0

100

100

0

有效 MAX 百分比和共享百分比不适用于内部池。

默认

0

100

30

30

有效 MAX 值的计算如下:min(100,100-(20+50)) = 30。 计算的共享百分比为有效 MAX - MIN = 30。

池 1

20

100

50

30

有效 MAX 值的计算如下:min(100,100-50) = 50。 计算的共享百分比为有效 MAX - MIN = 30。

池 2

50

70

70

20

有效 MAX 值的计算如下:min(70,100-20) = 70。 计算的共享百分比为有效 MAX - MIN = 20。

以上表为示例,我们可以进一步说明创建其他池时进行的调整。 此池为池 3,MIN 百分比设置为 5。

池名称

MIN 百分比设置

MAX 百分比设置

计算的有效 MAX 百分比

计算的共享百分比

注释

内部

0

100

100

0

有效 MAX 百分比和共享百分比不适用于内部池。

默认

0

100

25

25

有效 MAX 值的计算如下:min(100,100-(20+50+5)) = 25。 计算的共享百分比为有效 MAX - MIN = 25。

池 1

20

100

45

25

有效 MAX 值的计算如下:min (100,100-55) = 45。 计算的共享百分比为有效 MAX - MIN = 25。

池 2

50

70

70

20

有效 MAX 值的计算如下:min(70,100-25) = 70。 计算的共享百分比为有效 MAX - MIN = 20。

池 3

5

100

30

25

有效 MAX 值的计算如下:min(100,100-70) = 30。 计算的共享百分比为有效 MAX - MIN = 25。

池的共享部分用于指示在有可用资源时,可用资源的流向。 但是,在消耗资源时,资源流向指定的池,不能共享。 这在给定池中没有请求并且为该池指定的资源可以释放到其他池时,能够提高资源使用率。

池配置的某些极特殊情况是:

  • 所有池定义的最小值的总计表示 100% 的服务器资源。 在这种情况下,有效最大值等于最小值。 这等于将服务器资源划分为无重叠部分,而不考虑任何指定池内的资源消耗情况。

  • 所有池的最小值为零。 所有池竞争使用可用资源,其最终大小基于各个池消耗的资源。 其他因素(如策略)也对调整最终池大小起作用。

资源调控器预定义两个资源池:内部池和默认池。

内部池

内部池表示由 SQL Server 自身消耗的资源。 这个池始终只包含内部组,在任何情况下都不允许更改池。 不限制内部池的资源消耗。 池中的所有工作负荷均视为服务器函数的关键内容,资源调控器允许内部池在与其他池的限制发生冲突时争用资源。

注意注意

不从总体资源使用情况中减去内部池和内部组资源使用情况。 使用可用的总体资源计算百分比。

默认池

默认的池是第一个预定义的用户池。 在进行任何配置之前,默认池只包含默认组。 不能创建或删除默认池,但可以更改。 默认池除了包含默认组,还可以包含用户定义的组。

注意注意

可以更改默认组,但不能从默认池中移出。

用户定义的资源池

资源调控器提供用于创建、更改和删除资源池的 DDL 语句。

资源池任务

任务说明

主题

说明如何创建一个资源池。

创建资源池

说明如何更改资源池设置。

更改资源池设置

说明如何删除资源池。

删除资源池

请参阅

概念

资源调控器

资源调控器工作负荷组

资源调控器分类器函数

使用模板配置资源调控器

查看资源调控器属性