资源调控器资源池
在 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 语句。
资源池任务
任务说明 |
主题 |
---|---|
说明如何创建一个资源池。 |
|
说明如何更改资源池设置。 |
|
说明如何删除资源池。 |