資源管理員資源集區
在 SQL Server 資源管理員中,資源集區代表 Database Engine 執行個體的實體資源子集。 每個資源集區都會包含一個或多個工作負載群組。 在工作階段啟動時,資源管理員分類會將此工作階段指派給特定的工作負載群組,並且此工作階段必須使用指派給該工作負載群組的資源來執行。
資源集區概念
資源集區 (或集區) 代表伺服器的實體資源。 您可以將集區視為 SQL Server 執行個體內部的虛擬 SQL Server 執行個體。
集區具有兩個部分。 其中一個部分不會與其他集區重疊,以便達到最小資源保留的效果。 另一個部分則與其他集區共用,以便支援最大可能的資源耗用量。 在這個資源管理員版本中,您可以針對每個資源指定下列其中一個選項,藉以設定集區資源:
CPU 的 MIN、MAX 或 CAP
記憶體的 MIN 或 MAX
MIN 和 MAX 分別代表每個資源的最小保證可用資源集區和最大集區大小。
CPU 的 CAP 值代表硬性最大值。 不會使用高於此值的可用 CPU 容量。
所有集區之 MIN 值的總和不得超過伺服器資源的 100%。 MAX 和 CAP 值則可設定為 MIN 與 100% (含) 之間範圍中的任何值。
如果某個集區已經定義了非零的 MIN,其他集區的有效 MAX 值就會重新調整。 因為集區的最小已設定 MAX 值和其他集區 MIN 值的總和都是從 100% 中扣除。
下表將說明上述概念。 此表顯示了內部集區、預設集區和兩個使用者定義集區的設定。 下列公式可用來計算有效的 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 陳述式。
資源集區工作
工作描述 |
主題 |
---|---|
描述如何建立資源集區。 |
|
描述如何變更資源集區設定。 |
|
描述如何刪除資源集區。 |