大數(shù)據(jù)“復活”記
888
2025-03-31
隨著GaussDB(DWS)的快速發(fā)展,GaussDB(DWS)目前集成了眾多運維操作,其中大部分運維操作均需占用用戶資源,如IO、Mem、CPU、網絡、磁盤空間等,且無法依據(jù)用戶業(yè)務負載,自動調整運維負載,因此,如何協(xié)調不同運維操作與用戶業(yè)務之間的資源分配,成為了關鍵問題。
為解決這個問題,GaussDB(DWS)內設計并實現(xiàn)了運維任務調度器,下圖描述了運維任務調度器的基本工作原理。
調度器分為客戶端和服務端,通過grpc實現(xiàn)通信,調度器客戶端的功能在此不做詳細說明,可參考另一篇博文https://bbs.huaweicloud.com/blogs/257575。
調度器服務端是整個調度器的核心,主要包括幾個核心模塊,調度模塊、業(yè)務模塊、動態(tài)調度模塊、靜態(tài)調度模塊、數(shù)據(jù)持久化模塊和負載信息采集模塊,其中業(yè)務模塊包括業(yè)務分析模塊和業(yè)務執(zhí)行模塊。
調度模塊:調度模塊主要負責客戶端交互、維護調度器、拉起運維任務執(zhí)行模塊。
客戶端交互:調度器服務端通過grpc與客戶端進行通信,調度器啟動時將占用默認端口49851,若該端口已被占用,則隨機選取空閑端口,并將該端口寫入配置文件。客戶端啟動時,將讀取該配置文件,與服務端通信。
維護調度器:調度模塊內包含一個常駐維護線程,該維護線程負責維護調度器正常執(zhí)行,該維護線程通過輪詢方式執(zhí)行多個維護項,目前版本維護項包括:
1. 執(zhí)行模塊維護:輪詢所有的執(zhí)行模塊,查看執(zhí)行模塊是否已經完成,若完成,則釋放該執(zhí)行模塊。
2. 運維任務清理:清理調度器歷史數(shù)據(jù)。
3. 查詢調度任務:從數(shù)據(jù)庫中查詢當前時間節(jié)點是否有需要做的運維任務,并調用動態(tài)調度模塊,依據(jù)集群資源負載情況,判斷該運維任務是否可以執(zhí)行。
動態(tài)調度模塊:依據(jù)集群實時狀態(tài),提供調度決策,決定是否執(zhí)行該運維任務。
通常情況下,用戶在注冊運維任務時,會配置該運維任務執(zhí)行的時間窗。調度器會從時間窗開始的時間點,調用動態(tài)調度模塊,判斷該運維任務是否可以執(zhí)行,若不可以執(zhí)行,則進行下一次輪詢判斷,若可以執(zhí)行,則拉起運維任務對應的執(zhí)行模塊。
執(zhí)行模塊:負責運維任務的執(zhí)行。
調度器可同時執(zhí)行多個運維任務,每個運維任務對應一個單獨的執(zhí)行模塊,執(zhí)行模塊之間未實現(xiàn)資源隔離,執(zhí)行模塊之間會爭搶集群資源。當執(zhí)行模塊被拉起以后,執(zhí)行模塊從數(shù)據(jù)庫中讀取對應的作業(yè),并執(zhí)行該作業(yè)。在執(zhí)行模塊執(zhí)行完以后,執(zhí)行模塊退出,并等待調度模塊執(zhí)行清理操作。
分析模塊:負責運維任務的分析。
在用戶注冊運維任務以后,分析模塊將該運維任務拆分為多個作業(yè),并分析每個作業(yè)的IO、CPU、MEM負載、執(zhí)行時長預估等信息,作業(yè)信息為靜態(tài)調度和動態(tài)調度提供了調度依據(jù)。
靜態(tài)調度模塊:依據(jù)集群歷史信息,提供靜態(tài)調度策略。
相比于動態(tài)調度策略,靜態(tài)調度策略僅依據(jù)集群歷史負載信息,對運維任務進行粗略的調度,該運維任務真正被調起的時間實際取決于動態(tài)調度。靜態(tài)調度的意義是,粗略估計運維任務的執(zhí)行時間,判斷用戶提供時間窗是否合理。
數(shù)據(jù)持久化模塊:調度器通過調用libpq.so.5.5動態(tài)庫與gauss內核進行通信。相比于gsql,libpq的通信方式更輕量。
采集模塊:負責采集集群信息。
采集模塊目前僅包括兩個采集項,集群IO負載和集群網絡負載,其中IO負載通過讀取gs_wlm_instance_history實現(xiàn),網絡負載通過讀取視圖pgxc_comm_status實現(xiàn)。
EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉庫服務 GaussDB(DWS) 運維
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。