色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談數據庫內存和CPU資源控制及資源管理器的應用

454398 ? 來源:博客園 ? 作者: 悅光陰 ? 2020-10-29 12:12 ? 次閱讀

數據庫系統的資源是指內存和CPU處理器)資源,擁有資源的多寡,決定了數據查詢的性能。當一個SQL Server實例上,擁有多個獨立的工作負載(workload)時,使用資源管理器(Resource Governor),能夠實現系統資源在邏輯上的隔離,解決在一臺SQL Server實例上,管理多用戶工作負載的需求。資源管理器允許數據庫管理員(DBA)通過編程設置資源池,配置資源池擁有資源的上限,資源池是每一個請求能夠使用的資源,這樣設置之后,強制系統在處理用戶發送的請求(Requsts)時所耗費的CPU 和 Memory資源的數量不能超過限制,在一定程度上,限制用戶能夠使用的資源數量,隔離了失控(runaway)的查詢對系統的影響。對于SQL Server 2012來說,用戶能夠基于工作負載,實現CPU資源的完全隔離,并能設置CPU資源使用量的硬上限(CAP Usage,Hard Limit)。在一個多用戶、高并發的SQL Server實例上,管理員使用Resource Governor,控制不同工作負載對內存和CPU資源的使用量,使不同的應用程序在資源的使用上相互隔離,使系統性能得到可預測性的控制和保證。

一,資源管理器的基本構成

Resource Governor的可編程部分由三部分組成:Resource Pool,Workload Group 和 Classifier Function,每個部分實現不同的功能。

1,資源池(Resource Pool)

在SQL Server實例中,資源隔離的基本單位是Resource Pool,正如其名,該對象是資源池,在創建Resource Pool時,指定該Pool擁有的CPU和Memory資源的數量范圍。在SQL Server 2012版本中,最多可以創建62個用戶自定義的Resource Pool。SQL Server內置了兩個ResourcePools:internal用于系統Task,用戶不能配置;default是默認的Resource Pool,用于任何沒有指定Resource Pool的Request;
2,負載分組(Workload Group)

Workload Group是邏輯上的實體,用于表示一個或多個工作負載。實際上,一個工作負載是SQL Server實例接收到的一個查詢請求(Request),通過Classifier Function將多個具有共同屬性的Requests劃分到相同的Workload Group中。每一個Resource Pool服務于一個或多個工作負載分組,這就是說,這些工作負載分組能夠共享同一個Resource Pool中擁有的資源。

SQL Server內置兩個負載分組:internal和default,關聯到相應的internal和default資源池,internal負載分組用于系統Task,SQL Server將沒有被分類函數顯式指定負載分組的Request劃分到default 分組中。

3,分類函數(Classifier Function)

分類函數根據指定的規則(Rule),例如,根據Login,應用程序名稱,數據庫名字等屬性,將接收的Request分配(路由)到不同的負載分組中,可以指定用戶定義的負載分組或default負載分組。

4,處理流程

Resource Governor各個部分相互配合,控制內存和CPU資源的使用:Classification將SQL Server實例接收到的Requests進行分類,劃分到不同的負載組中,負載組與之關聯的Resource Pool中包含的CPU和內存資源來處理Request,Resource Governor的處理流程如下圖:

Resource Pool 是SQL Server實例中物理資源的子集,由于位于同一個實例上的所有數據庫共享該實例的所有資源,因此,最好將Resource Pool的三個組成對象創建在master 數據庫中。

二,創建和使用資源管理器

資源管理器默認是關閉的,在使用之前,必須啟用。用戶可以通過SSMS啟用資源管理器,展開Management,選擇Resource Governor,右擊彈出快捷菜單,點擊“Enable”,啟用資源管理器:

或者,使用TSQL命令,重新配置,啟用資源管理器:

ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

1, 創建自定義的資源池(Resource Pool)

SQL Server 內置兩個資源池:internal和default,internal是系統內部使用的,default是默認的資源池,當一個查詢請求沒有指定資源池時,使用默認的資源池。為了管理用戶不同的工作負載,DBA需要根據業務需求創建自定義的資源池。在創建資源池時,需要注意,資源池的選項都是比例關系,所有資源的下限(MIN_MEMORY_PERCENT或MIN_CPU_PERCENT)的加和不能超過系統的物理資源總量,即不能超過100。

CREATE RESOURCE POOL rp_20Percent
WITH 
(
     MIN_CPU_PERCENT = 0,
     MAX_CPU_PERCENT = 40,
     CAP_CPU_PERCENT = 40,
     AFFINITY SCHEDULER = auto,
     MIN_MEMORY_PERCENT = 0,
     MAX_MEMORY_PERCENT = 20
);

CAP_CPU_PERCENT選項:設置資源池擁有CPU資源的硬上限,任何Workload Group使用的CPU數量不可能超過該上限,而資源池使用的CPU資源有可能超過MAX_CPU_PERCENT 選項指定的比例。

2,創建工作負載組(Workload Group)

創建工作負載分組,通過using子句關聯該分組能夠使用的資源池,一個工作負載分組只能關聯一個資源池,一個資源池可以服務一個或多個工作負載分組。

CREATE WORKLOAD GROUP wg_20Percent
WITH
(
    IMPORTANCE = MEDIUM,
    REQUEST_MAX_MEMORY_GRANT_PERCENT=20,
    REQUEST_MAX_CPU_TIME_SEC=0,
    REQUEST_MEMORY_GRANT_TIMEOUT_SEC=0,
    MAX_DOP=0,
    GROUP_MAX_REQUESTS=0
)
USING rp_20Percent;

IMPORTANCE選項:有三個可選值:Low,Medium和High,默認值是Medium,該選項用于指定該Workload Group在關聯的資源池(Resource Pool)中相對的重要性,由于同一個可以Resource Pool關聯多個Workload Group,當一個工作負載組(Workload Group)的Importance數值高于其他工作負載組(Workload Group)時,在競爭Resource Pool中的資源時,更容易獲勝。當前工作負載組的IMPORTANCE的選項不會使用其他資源池,也不會影響其他資源組中的工作負載。

REQUEST_MAX_MEMORY_GRANT_PERCENT:默認值是25,用于指定工作負載組能夠從資源組中申請到的最大授予內存(Grant Memory)資源,由于授予內存跟執行的SORT和HASH JOIN操作有關,如果設置REQUEST_MAX_MEMORY_GRANT_PERCENT為0,這意味著,SQL Server引擎將不允許執行排序和哈希鏈接操作。

MAX_DOP:用于指定并發查詢的最大并發度(Degree of Parallelism),默認值是0,表示使用全局配置(Global Setting)。

3,創建分類函數(Classifier Function)

分類函數根據特定的規則(Rule)把接收的request路由到不同的資源池中,用戶應該把分類函數創建在master數據庫中,這樣,函數的作用域就是整個SQL Server實例,分類函數的執行上下文是master 數據庫;如果分類函數返回NULL,default或不存在的工作負載組的名稱,那么查詢被路由導default資源池:

If the user-defined function returns NULL, default, or the name of non-existent group the session is given the default workload group context. The session is also given the default context if the function fails for any reason.

The function should be defined with server scope (master database).

例如,根據用戶名稱,將Request劃分到wg_20Percent負載分組。默認情況下,任何沒有指定Workload Group的Request,都分發到Default資源池。在實際產品環境中,也可以使用APP_NAME()獲取應用程序名字,或者SUSER_NAME()獲取用戶的登陸(Login)名稱,根據應用程序或登陸名稱劃分負載分組。

CREATE FUNCTION dbo.rgClassifierFunction_20Percent() 
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @Workload_Group_Name AS sysname
      IF (SUSER_NAME() = 'USER_READONLY')
          SET @workload_group_name = 'wg_20Percent'
    RETURN @workload_group_name
END;

常用于分類函數(Classifier Function)中的函數如下,這些函數的執行上下文是整個Server:

APP_NAME():返回當前Session所在的應用程序的名稱

HOST_NAME():返回主機名稱;

SUSER_NAME():返回登陸名;

IS_SVROLEMEMBER():當用戶是特定的服務器角色時,返回True;

注意:列表中函數執行的上下文和分類函數的上下文相同,如果分類函數被創建在master數據庫,那么分類函數的查詢的范圍是在master數據庫。

執行上下文是單個數據庫的函數是:

IS_MEMBER('role | group')

IS_ROLEMEMBER( 'role' [ , 'database_principal' ] )

函數:IS_MEMBER('role | group'),用于檢測當前的用戶(User)是否屬于當前數據庫的role或windows group。通常情況下,我們把分類函數創建在master系統數據庫中,這會導致函數的執行上下文是master數據庫,而不是用戶數據庫,而master數據庫中可能不存在windows group(數據庫用戶User),這會導致函數無法起到分類的作用:

IS_MEMBERdoesn’t work here as it’ll be firing in the context of the master db, not the user database you’re interested in.

為了解決這個問題,必須在master數據庫中創建相應的windows group(數據庫用戶User)。

4,啟動資源管理器(Resource Governor)

為了啟動資源管理器(Resource Governor),首先配置資源管理器使用的分類函數,把資源管理器和分類函數關聯起來;然后,重新配置資源管理器,啟動Resource Governor。啟動之后,SQL Server引擎使用分類函數對把SQL Server實例接收的查詢請求(Requests),分配到不同的負載分組中。

ALTER RESOURCE GOVERNOR 
WITH (CLASSIFIER_FUNCTION=dbo.rgClassifierFunction_20Percent);
GO
ALTER RESOURCE GOVERNOR
RECONFIGURE;
GO

5,修改分類函數

修改分類函數,需要先禁用資源管理器,然后解除分類函數和資源管理器的關聯關系,然后修改分類函數,把資源管理器和分類函數重新綁定:

ALTER RESOURCE GOVERNOR
DISABLE;
GO
ALTER RESOURCE GOVERNOR 
WITH (CLASSIFIER_FUNCTION=NULL);
GO

ALTER FUNCTION dbo.rgClassifierFunction_20Percent() 
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
    ....
END;
GO

ALTER RESOURCE GOVERNOR 
WITH (CLASSIFIER_FUNCTION=dbo.rgClassifierFunction_20Percent);
GO
ALTER RESOURCE GOVERNOR
RECONFIGURE;
GO

三,查看資源管理器

通過以下三個視圖查看資源管理器的元數據:

sys.resource_governor_configuration
sys.resource_governor_workload_groups
sys.resource_governor_resource_pools

通過以下三個DMV查看資源管理器的統計數據:

sys.dm_resource_governor_configuration
sys.dm_resource_governor_workload_groups
sys.dm_resource_governor_resource_pools

DMVsys.dm_exec_requests 和 sys.dm_exec_sessions 中包含group_id字段,用于表示當前session或request處于的工作負載分組。

CREATE FUNCTION dbo.rgclassifier_v1() 
RETURNS sysname 
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable to hold the value returned in sysname.
    DECLARE @grp_name AS sysname
-- If the user login is 'sa', map the connection to the groupAdmin  workload group. 
    IF (SUSER_NAME() = 'sa')
        SET @grp_name = 'groupAdmin'
-- Use application information to map the connection to the groupAdhoc workload group.
    ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')
        OR (APP_NAME() LIKE '%QUERY ANALYZER%')
            SET @grp_name = 'groupAdhoc'
-- If the application is for reporting, map the connection to the groupReports workload group.
    ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')
        SET @grp_name = 'groupReports'
-- If the connection does not map to any of the previous groups, put the connection into the default workload group.
    ELSE
        SET @grp_name = 'default'
    RETURN @grp_name
END;
GO

-- Register the classifier user-defined function and update the 
-- the in-memory configuration.
ALTER RESOURCE GOVERNOR 
WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211578
  • 內存
    +關注

    關注

    8

    文章

    3019

    瀏覽量

    74003
  • 數據庫系統
    +關注

    關注

    0

    文章

    31

    瀏覽量

    9590
  • 資源管理器
    +關注

    關注

    0

    文章

    23

    瀏覽量

    7533
收藏 人收藏

    評論

    相關推薦

    問GPIB卡安裝正確,為什么在資源管理器中沒有板卡GPIB0?

    問GPIB卡安裝正確,為什么在資源管理器中沒有板卡GPIB0?本人已利用GPIB節點和visa函數可以與儀器通信,但在資源管理器中就是沒有GPIB的管理,是因為用的驅動版本低嗎?GPIB卡驅動是2.3的版本,同時它發布時
    發表于 02-20 20:19

    關于如何在LV中實現資源管理器

    希望可以在LV中插入資源管理器,實現的功能就像WINDOWS中的資源管理器一樣的功能,我想從系統API中調用,但發現沒有這種函數啊。希望大神給予幫助。
    發表于 03-08 09:03

    LabVIEW 工程資源管理器

    ,LabVIEW 增加了一個工程資源管理器功能。LabVIEW 工程資源管理器就是一個可以方便查看、調整程序系統結構的工作區。與 VC, VB 等語言中的 project, workspace 相類似。Project 的出現使得 LabVIEW 對于大項目的
    發表于 01-05 16:51

    windows7開機提示“資源管理器已停止工作”

    windows7開機提示“資源管理器已停止工作”的解決方法分享給大家,據一些用戶反映,在使用Win7系統的時候會出現這樣的情況,每次開機都提示“資源管理器已停止工作”如下圖所示: 原因分析: 這是
    發表于 05-19 16:58

    如何用代碼資源管理器跳轉到一個已尋址函數?

    你好,作為PSoC Creator的NeWBEE,我還沒有發現,如何用代碼資源管理器跳轉到一個已尋址函數。在我的程序中,主函數是第一個函數,其他所有函數都在下面。所以我必須把這些功能聲明在上面。如果
    發表于 08-01 08:48

    請問一下資源管理器的cubemxsettings怎么調出來

    請問一下,資源管理器的cubemxsettings怎么調出來
    發表于 10-12 10:22

    TouchGFX文件夾在IDE項目資源管理器中不存在是什么原因?如何解決?

    的文件資源管理器中的文件結構與 STM32CubeIDE 項目資源管理器中顯示的不同。例如,我的文件資源管理器中的 TouchGFX 文件夾在 IDE 項目資源管理器中不存在。是什么原
    發表于 12-05 07:05

    OrCAD信號資源管理器

      Cadence公司的OrCAD ® ®資源管理器的信號使信號探測,分析和驗證,以幫助工程師解決信號完整性問題的整個設計過程中,從設計周期,并最終通過布局布線的開始。在預
    發表于 09-09 17:55 ?1153次閱讀

    Delphi教程_新穎的資源管理器界面

    Delphi教程新穎的資源管理器界面,很好的Delphi資料,快來下載學習吧。
    發表于 03-16 14:49 ?10次下載

    弄個取資源管理器選中文件或文件夾名稱

    易語言是一門以中文作為程序代碼編程語言學習例程:-弄個取資源管理器選中文件或文件夾名稱
    發表于 06-06 17:01 ?11次下載

    Win10 11月更新的文件資源管理器假死頻繁

    為了防止翻車,微軟依然采取小范圍推出Windows 10 November 2019 Update(version 1909)的更新,但即便如此,依然還是出現了不少問題,特別是資源管理器搜索方面的。
    的頭像 發表于 12-19 09:18 ?4272次閱讀

    微軟欲改善Windows 10文件資源管理器體驗

    根據一份新的職位清單,微軟希望提供更現代的File Explorer(文件資源管理器)體驗。
    的頭像 發表于 02-26 14:26 ?1886次閱讀
    微軟欲改善Windows 10文件<b class='flag-5'>資源管理器</b>體驗

    YARN資源管理器的容錯和架構概述

    Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的
    發表于 04-22 08:00 ?0次下載
    YARN<b class='flag-5'>資源管理器</b>的容錯和架構概述

    Win10可選更新:修復資源管理器崩潰

    據外媒 WindowsLatest,微軟最近為 Windows 10 發布了 KB4586819 可選更新,修復了文件資源管理器崩潰,游戲和 USB 等多個問題。 此更新補丁附帶了很長的 bug
    的頭像 發表于 11-23 11:01 ?1783次閱讀

    OpenHarmony實例:【資源管理器

    本工程使用[@ohos.app.ability.common]?接口中的AbilityContext類,獲取資源管理器resourceManager
    的頭像 發表于 04-09 15:10 ?456次閱讀
    OpenHarmony實例:【<b class='flag-5'>資源管理器</b>】
    主站蜘蛛池模板: 成人精品视频在线| 97蜜桃123| 最新在线黄色网址| 国产亚洲精品成人a在线| 色欲精品久久人妻AV中文字幕| jizz日本女人| 欧美熟妇VIVOE精品| 99久久精品费精品蜜臀AV| 毛片手机在线看| 91黄色大片| 欧美日韩精品| 扒开小处30p| 色欲色香天天天综合| 国产精品 中文字幕 亚洲 欧美| 搡女人免费免费视频观看| 草莓湿漉漉是好事还是恶性| 人成午夜免费视频| 欧美人成在线观看ccc36| 91精品免费久久久久久久久| 男人天堂黄色| 草699一码二码三码四码| 入禽太深视频免费视频| 高清国产在线播放成人| 午夜性色一区二区三区不卡视频 | 欧美黄色精品| 穿着丝袜被男生强行啪啪| 爽死你个放荡粗暴小淫货漫画| 国产剧情麻豆mv| 伊人久久精品午夜| 欧美精品一卡二卡| 国产97碰免费视频| 亚洲欧美综合中文| 嫩小xxxxbbbb| 成人天堂婷婷青青视频在线观看| 污污又黄又爽免费的网站 | 亚洲免费人成在线视频观看| 极品少妇高潮啪啪AV无码吴梦梦 | 牛牛超碰 国产| 大肥婆丰满大肥奶bbw肥| 晓雪老师我要进你里面好爽| 久久国产精品久久国产精品|