亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

配置SQL Server 2008的資源調(diào)控器實現(xiàn)負載均衡

系統(tǒng) 1965 0
原文: 配置SQL Server 2008的資源調(diào)控器實現(xiàn)負載均衡

轉(zhuǎn)自:http://www.ithov.com/server/93267.shtml

1、為什么引入“資源調(diào)控器”?


在SQL Server 2008之前,數(shù)據(jù)庫引擎曾嘗試為所有并發(fā)用戶提供均衡的性能,這使我們幾乎無法控制分配給用戶或工作負載的優(yōu)先級,而且隨著并發(fā)登錄的增加會雪上加霜。“資源調(diào)控器”有助于防止性能問題,并識別正在使用的應(yīng)用程序。“資源調(diào)控器”可以控制分配給會話的CPU和內(nèi)存,并進一步設(shè)置應(yīng)用程序能夠使用的最大和最小的CPU百分比和內(nèi)存,以及允許的最大并行度。盡管資源調(diào)控器目前還有一些不足之處,但它對于處理許多常見的資源問題已經(jīng)足夠了。

2、創(chuàng)建“資源池”


  配置“資源調(diào)控器”是從創(chuàng)建“資源池”開始的。在SQL Server 2008中使用CREATE RESOURCE pool命令來創(chuàng)建資源池,從而通過它來分配會話,并設(shè)置其占用系統(tǒng)資源的最大和最小百分比。

  比如使用下面命令以根據(jù)CPU百分比限制來創(chuàng)建3個資源池:

    CREATE RESOURCE pool LowPriorityAppspool WITH (MAX_CPU_PERCENT = 20); 

  CREATE RESOURCE pool MediumPriorityAppspool WITH (MAX_CPU_PERCENT = 60); 

  CREATE RESOURCE pool HighPriorityAppspool WITH (MAX_CPU_PERCENT = 100);
  

這些命令中使用的CPU百分比不是硬性限制。例如,如果操作系統(tǒng)上只有一個低優(yōu)先級應(yīng)用程序在運行,那么它將能夠使用整個CPU。基于CPU百分比的資源調(diào)控只有在并行需求重疊時才會發(fā)揮作用。

  另外,在“資源調(diào)控器”中,最多可以建立2O個資源池,其中18個可以進行配置。在另外兩個資源池中,一個分配給內(nèi)部進程,如清理類操作;另一個供沒有分配給其它池的會話使用的默認池。因此,不應(yīng)過早創(chuàng)建太多資源池,應(yīng)該謹慎考慮哪些池是必要的。

3、創(chuàng)建工作負載組


  對現(xiàn)有資源進行分組以后,我們需要創(chuàng)建創(chuàng)建工作負載組以實現(xiàn)對分配給這些資源池的應(yīng)用程序分組。在SQL Server 2008中使用CREATE WORKLOAD GROUP命令創(chuàng)建工作負載組。

  下面列舉幾個CREATE WORKLOAD GROUP命令應(yīng)用實例:

    CREATE WORKLOAD GROUP 

  UnidentnifiedApplications 

  USING LowPriorityAppspool;



  CREATE WORKLOAD GROUP 

  WellBehavedAccessApplications 

  USING MediumPriorityAppspool;



  CREATE WORKLOAD GROUP 

  PoorlyBehavedAccessApplications 

  USING LowPriorityAppspool;



  CREATE WORKLOAD GROUP 

  WellBehavedExcelApplications 

  USING MediumPriorityAppspool;



  CREATE WORKLOAD GROUP 

  CriticalCorporateApplications 

  USING HighPriorityAppspool;
  

上面實例我們創(chuàng)建了5個工作負載組,它們被分配給3個資源池。Access和Excel應(yīng)用程序被分配給不同的資源池,這樣,我們可以在未來根據(jù)一個資源池對分配給另一個資源池的資源進行更改。為性能較差的Access應(yīng)用程序和無法識別的其它應(yīng)用程序分配較少的資源。我們?yōu)橐呀?jīng)識別的對工作至關(guān)重要的應(yīng)用程分配具有最高的資源分配的優(yōu)先級。

4、查看“資源調(diào)控器”配置


  創(chuàng)建了工作負載組并將其分配給資源池以后,它們不會立即開始工作。要確定還需要進行什么配置才能使“資源調(diào)控器”正常運行,可以查看當前的“資源調(diào)控器”配置,這些信息在一個新的動態(tài)管理視圖中顯示。

  (1).查看“資源調(diào)控器”配置信息

  執(zhí)行命令:

    SELECT * FROM sys.dm_resource_governor_configuration;
  

命令執(zhí)行完畢就會輸出“資源調(diào)控器”的配置信息。需要注意的是:此輸出信息是在SQL Server Management Studio(SSMS)的Results選項卡中顯示的。最左邊一列顯示的值1是輸出的行號。

  此輸出信息告訴我們兩個信息:

  第一、is_reconfiguration_pending標記表示在你所做的更改生效之前,需要執(zhí)行命令:ALTER RESOURCE GOVERNOR RECONFIGURE。運行這條命令之后,is_reconfiguration_pending的值就變成0。

  第二、classifier_function_id的值為0,表示沒有分配分類器函數(shù)。分類器函數(shù)用于決定一個會話應(yīng)該放在哪個工作負載組中。

  (2).查看資源池配置信息

  執(zhí)行下面的命令來查看資源池配置:

    SELECT * FROM sys.dm_resource_governor_resource_pools;
  

命令執(zhí)行完畢后會看到資源池的相關(guān)信息。需要注意的是:,在執(zhí)行重新配置命令之前,這個輸出信息中只顯示內(nèi)部資源池和默認資源池。

  可以使用下面這個命令查看工作負載池配置:

    SELECT * FROM sys.dm_resource_governor_workload_groups;
  

5、應(yīng)用程序?qū)崿F(xiàn)分類


  配置“資源調(diào)控器”的最后一步是確定想要控制的會話。這可以利用分類器函數(shù)來實現(xiàn),分類器將會話分配給特定的工作負載組。

  (1).應(yīng)用APP_NAME()函數(shù)分類

  分類器函數(shù)必須返回一個SYSNAME類型的值,這個值當前是NVARCHAR(128)的別稱。對于本文來說,我們根據(jù)應(yīng)用程序名稱函數(shù)(APP_NAME())來決定會話應(yīng)該歸入哪一個工作負載組,這個函數(shù)返回應(yīng)用程序的連接字符串中指定的值。筆者特別喜歡選擇這個選項,因為它支持對正在運行的應(yīng)用程序進行分類,在對會話進行分類時還有其它幾個選項可供選擇我們后面再說。

  構(gòu)建應(yīng)用程序時通常不會在連接字符串中指定應(yīng)用程序名稱,但把應(yīng)用程序名稱添加到連接字符串或在應(yīng)用程序配置文件中指定該值是很重要的。這種方法在“資源調(diào)控器”之外也很有用,因為應(yīng)用程序名稱會出現(xiàn)在SQL Server Profiler創(chuàng)建的跟蹤記錄中,能夠用來篩選跟蹤記錄中的事件。通過連接字符串訪問應(yīng)用程序名稱也有助于在隔離與應(yīng)用程序相關(guān)的問題時跟蹤對SQL Server的訪問。不過,有些設(shè)計不太好的應(yīng)用程序具有硬編碼的連接字符串,這時它們不適合使用這種方法。硬編碼連接字符串是一種應(yīng)該避免的做法。

  在使用中筆者還發(fā)現(xiàn),按名稱對應(yīng)用程序進行分類是識別連接服務(wù)器的未知應(yīng)用程序的一個好的起點。在這種情況下,“資源調(diào)控器”的好處在于,未知應(yīng)用程序?qū)⒈环旁诘蛢?yōu)先級的資源池里,隨后我們能夠快速識別正在使用的應(yīng)用程序。這項功能可幫助你確定誰正在使用你的系統(tǒng)。

  (2).其他分類函數(shù)和屬性

  除了使用APP_NAME()函數(shù)可進行會話分類外,也可以使用許多其它函數(shù)來實現(xiàn),比如HOST_NAME()、SUSER_NAME()、SUSER_SNAME()、IS_SRVROLEMEMBER()和IS_MEMBER()。

  如果決定使用HOST_NAME()或APP_NAME()作為分級器函數(shù),一定要注意用戶可能更改這些函數(shù)。不過在實際中,筆者發(fā)現(xiàn)APP_NAME()很好用。

  此外,在決定如何分類時,還可以使用一些屬性。L0GINPROPERTY()函數(shù)現(xiàn)在包含兩個可在分類函數(shù)中使用的屬性(DefaultDatabase和DefauItLanguage)。而且L0GINPROPERTY()函數(shù)提供了對連接所用網(wǎng)絡(luò)協(xié)議的訪問,還支持訪問驗證方案、本地IP地址、TCP端口和客戶端IP地址。ORIGINAL_DB_NAME()函數(shù)也很有用,因為它可以返回會話在首次連接時提供的數(shù)據(jù)庫名稱,而不是默認數(shù)據(jù)庫。這些屬性支持基于任何這類值進行分類。例如,可以基于用戶通常使用的數(shù)據(jù)庫把連接分配給工作負載組。

  (3).分類前必要的測試

  在使用分類器函數(shù)之前對其進行測試是很重要的,否則系統(tǒng)可能無響應(yīng)。例如,可以在SSMS中執(zhí)行以下命令來測試APP_NAME()分類器函數(shù):

SELECT?APP_NAME();

  因為分類器函數(shù)無法識別SSMS,因此執(zhí)行命令:

    SELECT dbo.UserClassifier();
  

如果不修改分類器函數(shù)而直接啟用它,SSMS將在低優(yōu)先級應(yīng)用程序資源池中運行。也可以使用分類器函數(shù)在數(shù)據(jù)庫表中查找工作負載組名稱,而不是將所有應(yīng)用程序名稱硬編碼到該函數(shù)中。通常,在訪問數(shù)據(jù)庫表來查找工作負載組時,性能不會受到太大影響,因為數(shù)據(jù)庫表不會很大,能夠被快速緩存,并且只有在建立連接之后才能使用該函數(shù)制定分類決策。

  現(xiàn)在可以使用以下命令實現(xiàn)分類器函數(shù):

     ALTER RESOURCE GOVERNOR 

  WITH (CLASSIFIER_FUNCTION = dbo.UserCIassifier);
  

然后必須重新配置“資源調(diào)控器”,使掛起的配置生效。這可以使用以下命令來完成:

    ALTER RESOURCE GOVERNOR RECONFIGURE;
  

至此,“資源調(diào)控器”配置就完成了。然后需要確保“資源調(diào)控器”能夠按預(yù)期工作。如果未對分類器函數(shù)進行良好的測試,系統(tǒng)可能不會響應(yīng)新的登錄操作,可能需要使用專用管理員連接(DAC)來獲取對SQL Server的訪問。如果還沒有配置DAC,可以以單用戶模式重啟服務(wù)器。在以單用戶模式運行時,連接不會受到“資源調(diào)控器”約束,因此可以禁用資源調(diào)控器,直到問題修復(fù)。

(4).改變分類器函數(shù)的注意事項

  如果需要改變分類器函數(shù),必須首先禁用“資源調(diào)控器”,因為無法在“資源調(diào)控器”正在運行時對其進行更改。可以運行以下命令來禁用當前的分類器函數(shù):

    ALTER RESOURCE GOVERNOR 

  WITH (CLASSIFIER_FUNCTION = NULL);
  

需要注意的是:“資源調(diào)控器”更改應(yīng)該由組織中最資深的DBA(數(shù)據(jù)庫管理員)來執(zhí)行,以免由于錯誤配置“資源調(diào)控器”而引起問題。

6、監(jiān)控和配置資源的其它技術(shù)

  除了“資源調(diào)控器”,我們也可以通過系統(tǒng)監(jiān)控(perfmon exe)工具來監(jiān)控SQL Server分配的CPU資源。當添加想要監(jiān)控的計數(shù)器時,SQL Server:Resource pool Stats對象會顯示已配置的每個資源池的實例。

  一些類似的與實例相關(guān)的選擇已被添加到SQL Server:Workload Group Stats計數(shù)器,相關(guān)的值也可通過查詢sys.dm_os_performance_counters視圖獲得。

  為了進行更仔細的監(jiān)控,SQL Server中還添加了其它一些事件,包括CPU Threshold Exceeded、PreConnectStarting和PreConnect:Completed事件。如果想要使用.NET代碼以編程方式控制“資源調(diào)控器”,可以使用已經(jīng)添加到SQL Server Management Objects(SMO)中的ResourceGovernor類。

  通常情況下,我們比較關(guān)注配置資源池時最大的CPU百分比,因為必須非常謹慎地配置最小百分比。如果將最小值配置得太高,很容易過度限制系統(tǒng)的資源利用率,尤其是內(nèi)存的最小百分比不宜過高。

總結(jié):

  需要說明的是,我們并不能利用“資源調(diào)控器”及時降低剛發(fā)現(xiàn)的嚴重影響系統(tǒng)性能的查詢的優(yōu)先級,因為在連接會話時,工作負載組和資源池就已經(jīng)分配完成。所以,在配置“資源調(diào)控器”前做好統(tǒng)籌安排是非常必要的。雖然“資源調(diào)控器”并不是盡善盡美,但對于DBA任不失為一個實現(xiàn)資源的負載均衡的利器。


配置SQL Server 2008的資源調(diào)控器實現(xiàn)負載均衡


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产第一页视频 | 日本激情视频一区二区三区 | 黄色α片| 日韩天天操 | 羞羞网站免费观看 | 日日夜夜爽 | 99热99re8国产在线播放 | 网红毛片| 成人免费视频一区二区 | www.久久综合 | 亚洲欧美综合人成野草 | 成人一a毛片免费视频 | 特黄日韩免费一区二区三区 | 亚洲精品亚洲人成在线播放 | 国产二三区 | 精品久久亚洲 | 伊人77| 黄色高清在线观看 | 99视频在线免费看 | 伊人网色 | 国产美女一级高清免费观看 | 在线观看人成网站深夜免费 | 欧美与黑人午夜性猛交久久久 | 天天色天天拍 | 国产高清在线精品二区一 | 寂寞午夜影院 | 人做人爱视频欧美在线观看 | 国产自产视频 | 久久久久国产一级毛片高清板 | 久久午夜剧场 | 久久精品观看影院2828 | 国产成人精品第一区二区 | 91视频精选 | 九九色综合网 | 日日拍夜夜嗷嗷叫狠狠 | 久久日本精品99久久久久 | 国产成人综合日韩精品婷婷九月 | 日本中文字幕在线视频 | 天天干天天射天天操 | 波多野结衣视频一区二区 | 欧美激情aa毛片 |