掌握把“爛”SQL牢牢關進籠子里的密鑰

来源:https://www.cnblogs.com/huaweiyun/archive/2023/07/12/17546973.html
-Advertisement-
Play Games

摘要:本文通過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

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在C#中調用StringBoot介面,POST請求,案例代碼: public string HttpPost() { //把用戶傳過來的數據轉成“UTF-8”的位元組流Encoding encoding = Encoding.UTF8;//創建一個HTTP請求HttpWebRequest reques ...
  • fdisk 命令 創建分區 實現擴容 Linux fdisk命令簡介 Linux fdisk 是一個創建和維護分區表的程式,它相容 DOS 類型的分區表、BSD 或者 SUN 類型的磁碟列表。 菜單操作說明 m :顯示菜單和幫助信息 a :活動分區標記/引導分區 d :刪除分區 l :顯示分區類型 ...
  • 作者:Bright-Ho 聯繫方式:[email protected] input輸入子系統框架分析(純軟體方面): 上一節,我們簡單的描述的什麼是輸入子系統;什麼是字元設備;以及其作用;重點是我們講到分析輸入子系統必須結合硬體設備來分析;那麼這一節,我們主要講解輸入子系統的軟體框架;接下來,我們就進 ...
  • 作者:Bright-Ho 聯繫方式:[email protected] 前言背景描述: 雖然在網上看了很多有關輸入子系統的資料和視頻,但是真正的,系統的,全面的,來弄清輸入子系統,還是要花些時間和精力的!現在我以一個初學者的角度來分析input輸入子系統; 那麼分析input輸入子系統之前,得先弄清楚 ...
  • # FRP使用方法 # 流程圖如下 >建議查看流程圖哦 ![image](https://img2023.cnblogs.com/blog/2368840/202307/2368840-20230712150836502-1824122109.png) ## 訪問FRP官方項目 ### [https ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230711160327907-1137777359.png) # 1. 計算一年有多少天 ## 1.1. 方案 ### 1.1.1. 找到當前年份的第一天 ### 1.1.2 ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • 本文介紹了分庫分表的概念及優勢,以及sharding-jdbc分庫分表中間件,探究了sharding-jdbc的路由規則的執行流程 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...