Resource Governor的出現(xiàn),解決了在一臺SQL Server實例上,管理多用戶工作負(fù)載和資源隔離的需求,它允許管理員限制系統(tǒng)處理Requsts時所耗費的CPU 和 Memory資源的數(shù)量,在一定程度上,限制和隔離了runaway查詢。對于SQL Server 2012,用戶能夠基于工作負(fù)載,實現(xiàn)CPU資源的完全隔離,并能設(shè)置CPU資源使用量的硬上限(CAP Usage,Hard Limit)。在一個多用戶,高并發(fā)的SQL Server實例上,管理員使用Resource Governor,控制不同工作負(fù)載對內(nèi)存和CPU資源的使用量,使不同的應(yīng)用程序在使用的資源上相互隔離,使系統(tǒng)性能得到可預(yù)測性的控制和保證。
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)荷塘,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792一,基本實現(xiàn)(fundamental implementation)
Resource Governor的可編程部分由三部分組成:Resource Pool,Workload Group 和 Classifier Function,每個部分實現(xiàn)不同的功能。
1,資源池(Resource Pool)
在SQL Server實例中,資源隔離的基本單位是Resource Pool,正如其名,該對象是資源池,在創(chuàng)建Resource Pool時,指定該Pool擁有的CPU和Memory資源的數(shù)量范圍。在SQL Server 2012版本中,最多可以創(chuàng)建62個用戶自定義的Resource Pool。SQL Server內(nèi)置了兩個Resource Pools:internal用于系統(tǒng)Task,用戶不能配置;default是默認(rèn)的Resource Pool,用于任何沒有指定Resource Pool的Request;
2,負(fù)載分組(Workload Group)
Workload Group是邏輯上的實體,用于表示一個或多個工作負(fù)載。實際上,一個工作負(fù)載是SQL Server實例接收到的一個查詢請求(Request),通過Classifier Function將多個具有共同屬性的Requests劃分到相同的Workload Group中。每一個Resource Pool服務(wù)于一個或多個工作負(fù)載分組,這就是說,這些工作負(fù)載分組能夠共享同一個Resource Pool中擁有的資源。
SQL Server內(nèi)置兩個負(fù)載分組:internal和default,關(guān)聯(lián)到相應(yīng)的internal和default資源池,internal負(fù)載分組用于系統(tǒng)Task,SQL Server將沒有被分類函數(shù)顯式指定負(fù)載分組的Request劃分到default 分組中。
3,分類函數(shù)(Classifier Function)
分類函數(shù)根據(jù)Login,應(yīng)用程序名稱,數(shù)據(jù)庫名字等屬性,將Request劃分到不同的負(fù)載分組中,可以指定用戶定義的負(fù)載分組或default負(fù)載分組。
4,處理流程
Resource Governor各個部分相互配合,控制內(nèi)存和CPU資源的使用:Classification將SQL Server實例接收到的Requests進(jìn)行分類,劃分到不同的負(fù)載組中,負(fù)載組與之關(guān)聯(lián)的Resource Pool中包含的CPU和內(nèi)存資源來處理Request,Resource Governor的處理流程如下圖:
Resource Pool 是SQL Server實例中物理資源的子集,由于位于同一個實例上的所有數(shù)據(jù)庫共享該實例的所有資源,因此,最好將Resource Pool的三個組成對象創(chuàng)建在master 數(shù)據(jù)庫中。
二,使用示例
1, 創(chuàng)建Resource Pool
CREATE RESOURCE POOL rp_20PercentWITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 20, CAP_CPU_PERCENT = 20, AFFINITY SCHEDULER = auto, MIN_MEMORY_PERCENT = 0, MAX_MEMORY_PERCENT = 20);
CAP_CPU_PERCENT選項設(shè)置資源池?fù)碛蠧PU資源的硬上限,任何Workload Group使用的CPU數(shù)量不可能超過該上限,而資源池使用的CPU資源有可能超過 MAX_CPU_PERCENT 選項指定的比例。
2,創(chuàng)建Workload Group
創(chuàng)建工作負(fù)載分組,通過using子句關(guān)聯(lián)該分組能夠使用的資源池,一個工作負(fù)載分組只能關(guān)聯(lián)一個資源池,一個資源池服務(wù)一個或多個工作負(fù)載分組。
WORKLOAD
IMPORTANCE選項: 該選項指定該Workload Group在Resource Pool中相對的重要性,由于同一個Resource Pool關(guān)聯(lián)多個Workload Group,Importance數(shù)值高的Workload Group,在競爭Resource Pool中的資源時,更容易獲勝。該選項有三個可選值:Low,Medium和High,默認(rèn)值是Medium。
3,創(chuàng)建 Classifier Function
該分類函數(shù)根據(jù)用戶名稱,將Request劃分到wg_20Percent負(fù)載分組,默認(rèn)情況下,任何沒有指定Workload Group的Request,都使用Default資源池。在實際產(chǎn)品環(huán)境中,也可以使用APP_NAME()獲取應(yīng)用程序名字,根據(jù)應(yīng)用程序劃分負(fù)載分組。
(()
4,啟動Resource Governor
首先,配置Resource Governor使用的分類函數(shù);然后,執(zhí)行重新配置命令,啟動Resource Governor,SQL Server使用分類函數(shù)對SQL Server實例接收的Requests,劃分到不同的負(fù)載分組。
(CLASSIFIER_FUNCTION RESOURCE GOVERNOR
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。