大數(shù)據(jù)“復(fù)活”記
929
2025-03-31
什么是工作負(fù)載管理
工作負(fù)載管理(Workload management)是什么,應(yīng)該怎么理解?工作負(fù)載管理是對(duì)一個(gè)系統(tǒng)整體資源的管理和任務(wù)的合理調(diào)度,使系統(tǒng)可以高效運(yùn)轉(zhuǎn)。生活中有很多類似的例子:對(duì)于一個(gè)餐館來(lái)說(shuō),他的資源包括了餐館的房間、桌椅、每天的食材、采購(gòu)員、廚師、服務(wù)員等。如何安排每天采購(gòu)的食材、廚師和服務(wù)員的工作、顧客的預(yù)定、外賣(mài)訂單,保證每天食材充足又不浪費(fèi)、顧客多又不至于等待太久、VIP顧客能優(yōu)先滿足、外賣(mài)及時(shí)發(fā)出,這些都是工作負(fù)載管理要考慮的問(wèn)題。對(duì)分布式數(shù)據(jù)倉(cāng)庫(kù)來(lái)說(shuō),涉及的資源包括各種硬件資源,比如CPU、內(nèi)存、IO、磁盤(pán)空間、網(wǎng)絡(luò)等,還有各種軟件資源,比如連接池、線程、信號(hào)量、各種隊(duì)列等。分布式數(shù)據(jù)倉(cāng)庫(kù)的“客戶”就是各種上層應(yīng)用的作業(yè)(SQL語(yǔ)句),同時(shí)分布式數(shù)據(jù)倉(cāng)庫(kù)為了保證自身正常運(yùn)行還有一些內(nèi)部維護(hù)作業(yè),比如周期巡檢、數(shù)據(jù)歸檔、主備數(shù)據(jù)同步、實(shí)時(shí)監(jiān)控等。工作負(fù)載管理就是監(jiān)控各種作業(yè)對(duì)軟硬件資源的使用情況,為不同作業(yè)合理分配不同的資源,保證應(yīng)用的作業(yè)——“客戶”可以正確、快速的執(zhí)行,得到希望的結(jié)果。
GaussDB(DWS)負(fù)載管理架構(gòu)
GaussDB(DWS)的負(fù)載管理包括以下幾部分:
全局資源統(tǒng)計(jì)中心(CCN)
資源隊(duì)列(各個(gè)CN)
資源管控和資源信息收集(各個(gè)DN)
資源查詢視圖
全局資源統(tǒng)計(jì)中心(CCN)匯總所有CN上執(zhí)行的作業(yè)的資源信息以及系統(tǒng)中計(jì)算節(jié)點(diǎn)的資源分配情況,各個(gè)CN在收到用戶作業(yè)請(qǐng)求和結(jié)束作業(yè)時(shí)都會(huì)上報(bào)給CCN,以便CCN能實(shí)時(shí)跟蹤作業(yè)資源使用情況。同時(shí)各個(gè)CN也根據(jù)CCN的信息來(lái)了解系統(tǒng)整體資源使用情況,決策是否有足夠的資源來(lái)執(zhí)行作業(yè)。在資源不足的情況下,各個(gè)CN會(huì)將新的作業(yè)放在資源隊(duì)列中排隊(duì),等有足夠資源后再下發(fā)作業(yè)給DN來(lái)執(zhí)行。
資源池是用戶配置的資源載體,包括CPU資源、內(nèi)存資源、IO資源、并發(fā)作業(yè)數(shù)等。任何用戶發(fā)起的作業(yè)都有其對(duì)應(yīng)的資源池,同一資源池在所有CN和DN上的信息是完全一致的,這保證了同一用戶的作業(yè)從任何CN下發(fā)DN后,所有DN都知道按什么規(guī)格來(lái)對(duì)該作業(yè)進(jìn)行資源管控。
各個(gè)DN根據(jù)資源池配置來(lái)控制作業(yè)資源使用,例如DN通過(guò)資源池上定義的控制組來(lái)調(diào)節(jié)作業(yè)的CPU配額和限額,通過(guò)資源池定義的內(nèi)存限額來(lái)控制內(nèi)存使用量。分布在DN各個(gè)執(zhí)行算子中的探針會(huì)采集作業(yè)資源使用情況,并周期上報(bào)給CN和CCN。同時(shí),DN整體資源使用情況也會(huì)上報(bào)給CN和CCN,以便CN和CCN調(diào)整后續(xù)作業(yè)執(zhí)行策略。
系統(tǒng)管理員可以通過(guò)查詢資源視圖來(lái)了解這些采集的資源信息,包括節(jié)點(diǎn)級(jí)、作業(yè)級(jí)和算子級(jí)資源信息。也可以將這些信息周期保存到系統(tǒng)表中,以方便隨時(shí)分析。
基本概念
資源隊(duì)列:CN上的資源管理單元,也可以成為租戶。每個(gè)資源隊(duì)列會(huì)創(chuàng)建一個(gè)資源池。每個(gè)資源隊(duì)列可以控制歸屬自己的作業(yè)使用的資源總量,使資源總量不超過(guò)資源池定義的資源上限。如果已運(yùn)行的作業(yè)資源使用量達(dá)到上限,則后續(xù)作業(yè)就需要排隊(duì)等待已運(yùn)行作業(yè)結(jié)束釋放資源。
資源池:可以定義各種資源的配額和限額,包括CPU、內(nèi)存、IO、并發(fā)隊(duì)列等。資源池是一種數(shù)據(jù)庫(kù)對(duì)象,在CN和DN間保持一致,保證DN可以按照定義來(lái)正確進(jìn)行資源管控。
配額:CPU可以支持配額,即在有CPU資源競(jìng)爭(zhēng)情況下,各個(gè)資源池的作業(yè)可以根據(jù)配額來(lái)分配CPU時(shí)間片。而在CPU資源空閑時(shí),各個(gè)資源池的作業(yè)也可以充分利用盡可能多的CPU資源。
限額:限額是將所有資源進(jìn)行劃分,各個(gè)資源池的作業(yè)不能使用超出限額的資源,即使限額以外的資源是空閑的。例如資源池的CPU限額是2個(gè)CPU核,即使其他CPU核是空閑的,該資源池的作業(yè)只能使用分配的2個(gè)CPU核。
用戶:這里的用戶是指數(shù)據(jù)庫(kù)用戶,可以登錄數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句。執(zhí)行的SQL語(yǔ)句也成為作業(yè)。用戶和資源池是多對(duì)一的關(guān)系,一個(gè)用戶只能指定一個(gè)資源池,一個(gè)資源池可以被多個(gè)用戶指定。應(yīng)用層業(yè)務(wù)可以通過(guò)一個(gè)用戶創(chuàng)建多個(gè)會(huì)話連接相同或不同的CN,并發(fā)執(zhí)行多個(gè)作業(yè)。所有CN上同一個(gè)資源池所有用戶作業(yè)的資源使用需要滿足資源池的配額和限額。
典型應(yīng)用場(chǎng)景
優(yōu)先級(jí)調(diào)度:為高優(yōu)先級(jí)的作業(yè)分配單獨(dú)的資源隊(duì)列。例如,對(duì)于前臺(tái)需要實(shí)時(shí)查詢的業(yè)務(wù)分配單獨(dú)的用戶和資源隊(duì)列,并分配較大的并發(fā)作業(yè)數(shù)。但如果前臺(tái)實(shí)時(shí)查詢的作業(yè)非常多,導(dǎo)致并發(fā)量很大,仍然會(huì)導(dǎo)致作業(yè)等待,因此高優(yōu)先級(jí)的作業(yè)比例不應(yīng)該很多。
限制高負(fù)載的后臺(tái)作業(yè):應(yīng)用設(shè)計(jì)時(shí)經(jīng)常會(huì)將實(shí)時(shí)性不高,且數(shù)據(jù)量大負(fù)載高的作業(yè)放在后臺(tái)執(zhí)行;或者把查詢量大的前臺(tái)查詢請(qǐng)求變成異步任務(wù),前臺(tái)顯示查詢進(jìn)度??梢詫⒇?fù)載高的后臺(tái)作業(yè)放到單獨(dú)的資源隊(duì)列上執(zhí)行,并設(shè)置CPU限額和內(nèi)存限額,減少并發(fā)作業(yè)數(shù)。這樣就可以避免少數(shù)高負(fù)載作業(yè)占用數(shù)據(jù)庫(kù)大量資源,導(dǎo)致其他實(shí)時(shí)作業(yè)響應(yīng)很慢。
業(yè)務(wù)資源分配:對(duì)于大型企業(yè)級(jí)數(shù)據(jù)平臺(tái),往往支撐很多業(yè)務(wù)運(yùn)行,例如不同地區(qū)、不同部門(mén)的業(yè)務(wù)數(shù)據(jù)分析。而不同地區(qū)和部門(mén)之間業(yè)務(wù)差異比較大,為了減少不同業(yè)務(wù)資源爭(zhēng)搶,可以為不同業(yè)務(wù)分配不同資源隊(duì)列,并根據(jù)業(yè)務(wù)實(shí)際情況進(jìn)行資源配比。
EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉(cāng)庫(kù)服務(wù) GaussDB(DWS)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。