摘要:本文通過5個部分內容幫助開發者快速瞭解GaussDB(DWS) 資源管理機制,讓數倉過載煩惱不再,把“爛”SQL牢牢關進籠子里。 本文分享自華為雲社區《直播回顧 | 掌握把“爛”SQL牢牢關進籠子里的密鑰》,作者: 華為雲社區精選 。 混合負載場景下,怎樣避免“爛”語句對資料庫系統的衝擊?如何 ...
摘要:本文通過5個部分內容幫助開發者快速瞭解GaussDB(DWS) 資源管理機制,讓數倉過載煩惱不再,把“爛”SQL牢牢關進籠子里。
本文分享自華為雲社區《直播回顧 | 掌握把“爛”SQL牢牢關進籠子里的密鑰》,作者: 華為雲社區精選 。
混合負載場景下,怎樣避免“爛”語句對資料庫系統的衝擊?如何在資源緊張的情況下,讓高優先順序的作業先行?本期《數倉過載不用愁,資源管理幫分憂》的主題直播中,我們邀請到華為雲EI DTSE技術佈道師周孟韜,針對GaussDB(DWS)資源管理機制與開發者和伙伴朋友們展開交流互動。通過5部分內容幫助開發者快速瞭解GaussDB(DWS) 資源管理機制,讓數倉過載煩惱不再,把“爛”SQL牢牢關進籠子里。
資源池的併發管控介紹
基於華為雲基礎設施架構,GaussDB(DWS)提供標準數倉、實時數倉、IoT數倉3種形態,滿足不同的業務訴求。在GaussDB(DWS)整體架構中,有4類資源管控,分別是:併發管控、算力管控、存儲空間、資源池。
當前GaussDB(DWS)的併發支持三種管控模式:
1.global併發管控:
通過max_active_statements參數,約束當前集群支持的query併發上限;
2.Simple語句併發數
某個資源池內,簡單語句的併發數上限;
3.複雜作業併發數
某個資源池內,複雜語句的併發數上限。
資源池的算力管控介紹
GaussDB(DWS)提供三種算力管控方式,分別是:記憶體管控、CPU管控和網路管控,本次主要介紹記憶體管控和CPU管控兩種方式。
記憶體管控:GaussDB(DWS)為用戶提供三種記憶體管控方式,用戶可以根據業務需要,合理設置資源池級別的記憶體配比。
針對傳統記憶體管理的弊端,GaussDB(DWS)設計實現了記憶體自適應技術,解除對work_mem的依賴,優化器依據統計信息對查詢使用記憶體進行估算;執行器執行SQL過程中,如果使用記憶體超過估算記憶體即觸發下盤;資源管理依據優化器估算的查詢記憶體,對查詢進行調度和管控。
CPU管控:GaussDB(DWS)使用cgroup實現了兩種cpu管控能力,基於cpu.shares的共用配額管控和基於cpuset的專屬限額管控。通過這兩種方式,可以靈活地滿足用戶對於CPU資源不同維度的劃分方式。
當作業超過資源池最大併發數時會造成資源池排隊,短時的排隊屬於正常現象,但長時間持續排隊,資源使用率就會變低。比較常見的是CCN排隊,通常造成CCN排隊的,主要是語句的估算記憶體耗盡導致,因此對於高記憶體開銷的語句,需要通過合理的併發進行管控。
資源池評估方法
資源池的規劃始終遵循由高到低來劃分資源,優先配比高優先順序,然後中優先順序、最後低優先順序;按照業務的SLA的要求,
- 高優先順序滿足峰值(無抖動、無排隊);
- 中優先順序均值滿足(可抖動,不報錯、不積壓);
- 低優先順序允許報錯、超時;
可以根據TOPSql的UniqueSql_ID來進行歸一化查詢的資源彙總統計,分析不同業務的資源開銷和併發訴求。
資源池高階用法-query_band
資源池的傳統用法是用戶關聯資源池,指定A用戶進Resource_pool 1,B用戶進Resource_pool 2,這樣的歸屬方式要求我們對每一個業務歸屬非常清晰,實操難度大,會造成用戶數無法控制的情況。因此我們還支持出另外一種資源池路由方式---query_band。用戶發起的查詢根據用戶的執行參數先路由到query_band再路由到資源池,只需要識別query_band的key即可,不再關註作業對於用戶的歸屬,降低資源池的規劃難度。
資源池空間管控&運算元下盤
GaussDB(DWS)為MPP架構,每個DN使用率不能超過當前磁碟空間總容量的90%(單個DN達到閾值後,觸發集群自我保護機制,也就是只讀),因此我們需要儘可能避免數據傾斜,GaussDB(DWS)提供了單語句的空間管控(預設10%磁碟容量大小,單次插入超過10%,當前query會觸發熔斷),以及用戶和Schema空間管控的能力,來很好的幫助用戶規劃自己的空間資源。
歡迎感興趣的開發者觀看直播回放,瞭解詳細信息。更多關於GaussDB(DWS)產品技術解析、數倉產品新特性的介紹,請關註GaussDB(DWS)論壇,技術博文分享、直播安排將第一時間發佈在GaussDB(DWS)論壇。
論壇鏈接:https://bbs.huaweicloud.com/forum/forum-598-1.html
直播回放鏈接:https://bbs.huaweicloud.com/live/DTT_live/202306281630.html