一、概述
資源調控器(resorce governor)是sql server 2008新增的一項功能。它的目的不是用來監視sql server的工作負載,而是用來限制某些使用者訪問sql server時所占用的cpu、記憶體資源。啟動後,sql server的處理流程如下圖所示。
資源調控器通常用於以下場景:
1. 伺服器上的查詢用盡
在這種情況下,資源消耗比較大的查詢會占用大多數或所有伺服器資源。例如,銷售部做一張銷售分析的大型報表,可能導致其它的業務反應非常緩慢。
2. 不可**的工作負荷執行
在這種情況下,相同伺服器上的並行應用程式將具有不同大小和型別的工作負荷。例如,兩個資料倉儲應用程式或 oltp 和資料倉儲應用程式的混合。這些應用程式彼此不是孤立的,產生的資源爭用將導致不可**的工作負荷執行。
3. 設定工作負荷優先順序
在這種情況下,允許乙個工作負荷的執行速度快於另乙個工作負荷,或者在存在資源爭用的情況下保證完成乙個工作負荷。使用資源調控器可以為工作負荷分配相對重要性。
二、啟用資源調控器
1. 使用ssms
在啟用之後,如果需要禁用資源調控器,則在上圖中清除「啟用資源調控器」選項。
2. 使用t-sql
alter resource governor reconfigure
如需禁用,則執行以下命令
alter resource governor disable
三、資源池
資源調控器預定義兩個資源池:內部池和預設池。使用者可以新建資源池。
1. 內部池
內部池表示由 sql server 自身消耗的資源。 這個池始終只包含內部組,在任何情況下都不允許更改池。 不限制內部池的資源消耗。 池中的所有工作負荷均視為伺服器函式的關鍵內容,資源調控器允許內部池在與其他池的限制發生衝突時爭用資源。
注意:不從總體資源使用情況中減去內部池和內部組資源使用情況。 使用可用的總體資源計算百分比。
2. 預設池
預設的池是第乙個預定義的使用者池。 在進行任何配置之前,預設池只包含預設組。 不能建立或刪除預設池,但可以更改。 預設池除了包含預設組,還可以包含使用者定義的組。
注意:可以更改預設組,但不能從預設池中移出。
3. 使用者定義的資源池
資源調控器提供用於建立、更改和刪除資源池的 ddl 語句。
或者使用ssms新建資源池。
四、工作負荷組
工作負荷組僅僅是乙個與使用者會話相關聯的名稱。它不是指查詢工作負荷,而是指乙個正在執行查詢的登入。它只負責建立連線的標識,建立工作負荷組後,資源調控器就可以將連線分配到合適的資源池。
資源調控器還提供了用於建立、更改和刪除工作負荷組的 ddl 語句。
或者使用ssms建立工作組負荷。
五、分類器函式
1. 建立分類器函式
資源調控器支援對傳入會話的分類。 分類基於函式中包含的一組使用者編寫的條件。 函式邏輯的結果使資源調控器可以將會話歸入現有工作負荷組類。
注意:內部工作負荷組中填入的是僅供內部使用的請求。 您不能更改用於路由這些請求的標準,也不能將請求歸入內部工作負荷組類。
您可以在master資料庫中編寫乙個標量函式,在其中包含用於將傳入會話分配給工作負荷組的邏輯。
例如,需要將登入名為「zhangs」的使用者列入reporting工作負荷組。注意:工作負荷組的名稱對大小寫敏感。
use master
gocreate function dbo.fn_resourcegovernorclassifier()
returns sysname
with schemabinding
asbegin
declare @group sysname
if suser_sname() = 'zhangs'
set @group = 'reporting'
return @group
endgo
2. 註冊分類器函式並更新資源調控器配置
將分類器函式連線到資源調控器。建立分類器函式並應用配置更改後,資源調控器分類器將使用此函式返回的工作負荷組名稱將新請求傳送到相應的工作負荷組。
alter resource governor with (classifier_function = dbo.fn_resourcegovernorclassifier)
alter resource governor reconfigure
或者使用ssms
六、資源調控器檢視
例如:select * from sys.resource_governor_resource_pools
select * from sys.resource_governor_workload_groups
select * from sys.resource_governor_configuration
七、限制
1. 版本限制
資源調控器僅適用於企業版、開發版、評估版。
2. 功能限制
資源管理僅限於 sql server 資料庫引擎,資源調控器不能用於 analysis services、integration services 和 reporting services。
資源調控器無法調控 i/o,希望下乙個版本的 sql server 增加支援。(sql server 2014 ctp2已經可以針對iops進行調控)
3. 侷限性
乙個資源調控器只可以調控該例項本身的連線。
資源調控器可以管理 oltp 工作負荷,但通常持續時間非常短的查詢型別總是在 cpu 上停留很短時間而不足以應用頻寬控制。這樣會使返回的 cpu 使用率的統計資訊有偏差。
資源調控器可以對例項內部的工作負荷進行調控,但調控的內容僅限於cpu和記憶體。
二 伺服器優化(4)資源調控器管理工作負荷
一 概述 資源調控器 resorce governor 是sql server 2008新增的一項功能。它的目的不是用來監視sql server的工作負載,而是用來限制某些使用者訪問sql server時所占用的cpu 記憶體資源。啟動後,sql server的處理流程如下圖所示。資源調控器通常用於...
獲取伺服器資源 二
位址是 1.控制台 2.應用管理 3.新增應用 4.新增應用資料 我這裡環境是 php5.6 5.建立成功後 6.返回應用列表,應用列表中點應用名稱可以去管理應用 7.管理 8.這裡提供了三種管理 的方法 空間管理 git管理 svn管理 9.我這裡使用的是git管理 參考官方的說明,建立出了乙個i...
二 伺服器優化(3)伺服器端優化措施
一 硬體 如果條件允許,則盡可能使用效能更好的硬體裝置。1 cpu cpu 的選型原則,一般先看主頻的高低,然後考慮二級快取的大小。其次,注意 windows 的電源選項。2 記憶體 原則上,記憶體越多越好。3 磁碟 磁碟是資料庫系統的最大瓶頸。建議優先考慮 spindle 再考慮 raid。後文將...