【正文】
源數(shù)量設(shè)定限制。同時(shí)為隔離及限制失控查詢,資源管理員更提供了詳細(xì)資源追蹤資訊供您做為收費(fèi)的依據(jù),並確保更精準(zhǔn)的預(yù)測(cè)效能。如需這項(xiàng)功能的詳細(xì)資訊,請(qǐng)參閱《 SQL Server 線上叢書(shū)》中的< 資源管理員 >( 透過(guò) SQL Server 2021,您可以為工作負(fù)載提供更完整的 CPU 資源隔離,設(shè)定 CPU 使用率的上限以提供更高的可預(yù)測(cè)性,並且可以掌控更高比例的 SQL Server 記憶體配置。 資源集區(qū)、工作負(fù)載群組和分類 SQL Server 資源管理員導(dǎo)入了「資源集區(qū)」的概念,這正是 SQL Server 執(zhí)行個(gè)體中資源隔離的基礎(chǔ)實(shí)作。透過(guò) TransactSQL 和其他管理介面 (例如 SMO),您可以針對(duì)資源集區(qū)進(jìn)行控制,並且可以透過(guò) CREATE RESOURCE POOL 和 ALTER RESOURCE POOL 陳述式來(lái)指派最小及最大的 CPU 和記憶體資源。 SQL Server 2021 支援高達(dá) 62 個(gè)使用者可定義的集區(qū),較 SQL Server 2021 中的 18 個(gè)大幅增加。另外還有兩個(gè)內(nèi)建資源集區(qū):一個(gè)名為 internal,這是為系統(tǒng)工作保留的集區(qū),不可設(shè)定。而另一個(gè)是使用者可設(shè)定的集區(qū),名為 default。依預(yù)設(shè),工作負(fù)載會(huì)在這個(gè)集區(qū)中執(zhí)行。 每一個(gè)使用者資源集區(qū)都可與一個(gè)或多個(gè)「工作負(fù)載群組」建立關(guān)聯(lián)。所謂的工作負(fù)載群組就是代表一個(gè)或多個(gè)用戶端工作負(fù)載的邏輯實(shí)體。您可利用由使用者定義的 分類 函數(shù),將內(nèi)送工作階段與這些工作負(fù)載群組建立關(guān)聯(lián)。分類函數(shù)是在使用者登入後執(zhí)行,並且可以呼叫系統(tǒng)函數(shù)來(lái)評(píng)估各種登入屬性,例如使用者名稱、工作站名稱、資料庫(kù)名稱。下圖顯示這些元件如何搭配運(yùn)作,合力將內(nèi)送連接分類到資源集區(qū)中。 4 圖 1:資源管理員工作階段分類 如需詳細(xì)資訊,包括對(duì)於 SQL Server 2021 和 SQL Server 2021 R2 中資源管理員功能明確且深入的介紹,請(qǐng)參閱由 Aaron Bertrand 和 Boris Baryshnikov 撰寫的技術(shù)白皮書(shū)《 使用資源管理員 》( 本文將審視在 SQL Server 2021 中導(dǎo)入的新功能,討論新增這些功能的原因,並說(shuō)明如何使用這些功能。 SQL Server 2021 的資源管理員新增功能 資源管理員為什麼變更了? 科技日新月異,隨著每個(gè)插槽的 CPU 核心數(shù)目不斷增加,以及大型電腦成本持續(xù)降低的趨勢(shì), 我們從使用資源管理員來(lái)為客戶隔離 SQL 資源的 SQL Server 主控合作夥伴那裡,聽(tīng)見(jiàn)了類似下列的意見(jiàn):「較新的市售伺服器中,每個(gè) CPU 都有 10 到 12 個(gè)核心,由於我們受限於最大集區(qū)數(shù),伺服器上的 CPU 資源也跟著受到影響。」想要以 SQL Server 為基礎(chǔ)提供具成本效益的資料庫(kù)服務(wù)給客戶,主機(jī)服務(wù)提供者需要更大的彈性,以便將大型電腦的可用資源分配給工作負(fù)載,並盡量減少工作負(fù)載之間的問(wèn)題。工作負(fù)載彼此競(jìng)爭(zhēng)資源時(shí)會(huì)產(chǎn)生問(wèn)題;某個(gè)工作負(fù)載對(duì)另一個(gè)工作負(fù)載的可用資源有負(fù)面影響時(shí)也會(huì)產(chǎn)生問(wèn)題,這就是所謂的「吵鬧的鄰居」。 5 隨著電腦和虛擬軟體的功能愈來(lái)愈強(qiáng)大,私人雲(yún)端中要虛擬化及管理的 SQL Server 執(zhí)行個(gè)體數(shù)目和大小也與日俱增。因此,為共用資源的使用者提供更有效的隔離措施,變得愈發(fā)重要。工作負(fù)載需要在 SQL Server 執(zhí)行個(gè) 體的分割資源上執(zhí)行,不能受到「吵鬧的鄰居」問(wèn)題影響。 我們也發(fā)現(xiàn)了另一個(gè)趨勢(shì),那就是針對(duì)資源使用量收費(fèi)的使用率呈現(xiàn)增加的狀態(tài)。針對(duì)企業(yè)內(nèi)部及公用主控提供者的內(nèi)部資源使用進(jìn)行追蹤和收費(fèi)的情形變得愈來(lái)愈普遍,連帶也促進(jìn)了為資源取用者提供預(yù)測(cè)費(fèi)用的需求。 新功能摘要 為滿足這些需求, SQL Server 2021 新增了下列功能: 將資源集區(qū)的數(shù)目上限從 20 增加到 64,以便分割較大的電腦供更多工作負(fù)載使用。 新增 CAP_CPU_PERCENT 選項(xiàng)至資源集區(qū),以設(shè)定 CPU 資源使用量的硬體上限,提供更高的可預(yù)測(cè)性。 新增 AFFINITY 選項(xiàng)至資源集區(qū),可讓個(gè)別資源集區(qū)與一個(gè)或多個(gè)排程器和 NUMA 節(jié)點(diǎn)同質(zhì)化,促進(jìn) CPU 資源的隔離。 除了單一頁(yè)面配置,還提供 SQL Server 記憶體管理員的多頁(yè)面配置管理功能。這是源自於 SQL Server 2021 大幅重新設(shè)計(jì)的成果,記憶體管理員現(xiàn)在變成了頁(yè)面配置的中央作業(yè)系統(tǒng)介面。如需有關(guān)記憶體管理員變更的詳細(xì)資訊,請(qǐng)參閱 SQLOS 與雲(yún)端基礎(chǔ)結(jié)構(gòu)團(tuán) 隊(duì)部落格 ( 為顯示新資源管理功能的運(yùn)作方式及其用法,這裡提供一個(gè)簡(jiǎn)單的示範(fàn),顯示運(yùn)作中的工作負(fù)載隔離。 工作負(fù)載隔離使用案例範(fàn)例 在此案例中,您主控著私人雲(yún)端,並負(fù)責(zé)維護(hù)支援銷售和行銷這兩個(gè)部門的集中式資料庫(kù)服務(wù)。這兩個(gè)部門在兩個(gè)需要大量 CPU 的工作負(fù)載之間共用相同的資料庫(kù)。為了妥善記錄成本,您追蹤了每個(gè)部門使用的資源。然後針對(duì)各部門使用的 CPU 資源,向各部門個(gè)別收費(fèi)。 對(duì)於查詢,這兩個(gè)部門都要求獲得可預(yù)測(cè)且穩(wěn)定的效能。銷售部 門希望其查詢永遠(yuǎn)擁有所需的資源,最好是隨時(shí)都有 100% 專屬的 CPU 核心可供其使用。但同時(shí),其使用者又必須與其他部門共用資料庫(kù)執(zhí)行個(gè)體。此外,行銷部門的查詢優(yōu)先順序較低。他們?nèi)孕杩深A(yù)測(cè)的效能,但是同時(shí)須兼顧固定的資源預(yù)算。 6 您的工作就是在此環(huán)境中提供工作負(fù)載隔離、可預(yù)測(cè)的效能,以及可預(yù)測(cè)的