主頁 > 資料庫 > 帶你掌握數倉的作業級監控TopSQL

帶你掌握數倉的作業級監控TopSQL

2023-04-21 08:49:37 資料庫

摘要:目前TopSQL功能被用戶廣泛使用,是性能定位、劣化分析、審計回溯等重要的基石,為用戶提供覆寫記憶體、耗時、IO、網路、空間等多方面的監控能力,

本文分享自華為云社區《GaussDB(DWS)監控工具指南(一)作業級監控TopSQL》,作者:幕后小黑爪 ,

1、引言:

監控系統是智能化管理和自動化運維的基石,可以為資源規劃,故障排查,性能優化提供至關重要的資料支持,GaussDB(DWS)作為企業級數倉,為用戶提供了一整套覆寫實體級、用戶級、作業級的資源監控能力,其中,作業級監控(下文統稱為TopSQL)主要是對運行作業的監控,包括了實時運行作業的相關資訊,歷史運行作業的相關資訊等,它收集的資料來源于資料庫內部,為用戶提供了實時監控資料庫的能力,

目前TopSQL功能被用戶廣泛使用,是性能定位、劣化分析、審計回溯等重要的基石,為用戶提供覆寫記憶體、耗時、IO、網路、空間等多方面的監控能力,

本文以數倉813版本作為基線,對TopSQL進行介紹,

2、TopSQL功能介紹

對于用戶而言,資料庫是個黑盒,輸入SQL陳述句,輸出預期結果,在此程序中,用戶關心兩點:

  • 輸出結果是否符合預期;
  • 陳述句要多久跑完,

關于第一個問題,用戶需要關注下SQL陳述句寫的是否合理,而對于第二個問題,普通用戶可以通過explain等手段分析作業的執行計劃,然而企業用戶的SQL作業耗時久,影響較大,重跑代價較高,無法額外通過explain performance等手段進行分析,此時TopSQL可以幫助用戶打開資料庫黑盒,查看作業執行的實時情況和歷史情況,便于用戶分析資料庫的情況,

TopSQL功能主要通過視圖進行承載,如下表所示,本文以query級別的視圖為例進行說明,

使用TopSQL功能需要sysadmin權限,此外,用戶需先檢查下TopSQL功能是否開啟,涉及TopSQL的資料庫GUC引數包括:

  • ENABLE_RESOURCE_TRACK (ON)

是否開啟監控功能,實時TopSQL的總開關,關閉之后實時TopSQL將不再進行記錄,更不會在歷史TopSQL中出現,

  • RESOURCE_TRACK_COST(0)

設定對當前會話的陳述句進行資源監控的最小執行代價,

  • RESOURCE_TRACK_LEVEL(QUERY)

設定當前會話的資源監控的等級,默認為query級別,

  • RESOURCE_TRACK_DURATION(60S)

設定實時TopSQL中記錄的陳述句執行結束后進行歷史資訊轉存的最小執行時間,當執行完成的作業,其執行時間不小于此引數值時,作業資訊會從實時視圖(以STATISTICS為后綴的視圖)轉存到相應的歷史視圖

  • ENABLE_RESOURCE_RECORD(ON)

設定是否開啟資源監控記錄歸檔功能,開啟時,對于執行結束的記錄,會分別被歸檔到相應的INFO視圖,CN和DN都需要設定上,

  • TOPSQL_RETENTION_TIME(30)

設定歷史TopSQL中GS_WLM_SESSION_INFO和GS_WLM_OPERATOR_INFO表中資料的保存時間,單位為天,

引數正確設定后,TopSQL會記錄用戶的SQL陳述句執行程序中的相關資訊,用戶可以使用TopSQL的視圖篩選出執行時間較長的作業,專注于慢SQL的分析,

TopSQL功能分為實時TopSQL和歷史TopSQL,以query級別為例,當需要查看正在運行的作業時,用戶可查看實時TopSQL視圖GS_WLM_SESSION_STATISTICSPGXC_WLM_SESSION_STATISTICS,若需要對已經執行完成的作業進行分析,可查詢歷史TopSQL視圖GS_WLM_SESSION_ HISTORYPGXC_WLM_SESSION_ HISTORY,其中GS_開頭的可以查詢當前CN節點上正在執行的作業資訊,PGXC_開頭的可查詢所有CN節點上正在執行的作業資訊,

實時TopSQL視圖為用戶記錄了作業運行時的相關資訊,比如作業下發來源、阻塞時間、執行時長、開始時間、記憶體消耗、作業下盤量、作業IO、網路、陳述句型別、陳述句的執行計劃等資訊,用戶可先通過resource_pool、nodename、username、query等資訊定位到自己需要分析的陳述句,再通過作業運行資訊定位問題,又或者用戶可通過對查詢進行篩選,篩選出當前占用資源較多的作業,

歷史TopSQL視圖記錄了作業運行結束時的資源使用情況(包括記憶體、下盤、CPU時間等)和運行狀態資訊(包括報錯、終止、例外等)以及性能告警資訊,用戶可通過對歷史陳述句運行資料的分析,篩選出執行時長較大的陳述句,看陳述句執行計劃是否有優化的空間,是否需要對表做一些analyze或者vacuum之類的操作,又比如對于記憶體報錯的情況,可分析記憶體占用高的陳述句是否合理,從執行計劃上分析是否有優化空間,

文末附TopSQL實踐:常見問題現象及對應原因,

3、TopSQL的原理決議

3.1 TopSQL原理簡介:

TopSQL的資料來源于資料庫內核,當陳述句執行時,TopSQL會實時記錄陳述句執行的相關資訊,實時TopSQL資料會保存在記憶體的臨時表中,當陳述句執行結束后,資料會轉存到對應物體表GS_WLM_SESSION_INFO中,在實際使用中,由于下發作業繁多,歷史TopSQL記錄的作業數也不斷增長,這樣會導致INFO表中的資料量逐漸龐大,為了確保數倉整體性能不受影響,支持通過TOPSQL_RETENTION_TIME來設定INFO表中資料的保存時間(單位為天),當資料存留時長超過這個時限,會對物體表GS_WLM_SESSION_INFO進行資料老化洗掉處理,

圖 3-1 TopSQL資料流通圖

如圖3-1所示,各項GUC引數決定了TopSQL生成的記錄資訊,具體的引數說明詳見第2節使用TopSQL前的檢驗,

3.2 性能分析:

對于企業用戶而言,性能問題是Top級問題,對于TopSQL功能,我們進行了性能壓測,在4TB的場景下,進行TPCC基準性能測驗,進行了2000的并發壓測,TPMC下降了約有2%,屬于可接受的范圍,

3.3 相關指標

陳述句屬性列說明:

陳述句的執行資訊屬性列,斜體代表可更換前綴/后綴式的指標,類似前綴后綴有(min_,max_,total_,average_,_skew_percent)

3.4 特殊情況說明:

TopSQL由于自身限制,存在一些記錄例外的情況,此處對8.1.3版本的TopSQL陳述句記錄情況進行說明:

  1. 不記錄特殊資料定義陳述句,如:SET、RESET、SHOW、ALTER SESSION SET、SET CONSTRAINTS陳述句;
  2. 記錄資料定義陳述句,例如:執行CREATE、ALTER、DROP、GRANT、REVOKE和VACUUM陳述句;
  3. 記錄資料操作陳述句,例如:
    1. 執行SELECT、INSERT、UPDATE和DELETE陳述句,
    2. 執行explain analyze和explain performance場景,
    3. 執行查詢query級別/perf級別視圖
  4. ODBC下發作業,由于多陳述句原因,會記錄事務的BEGIN和end陳述句;
  5. JDBC下發作業,隨機性多記錄一條JDBC的內部陳述句
  6. 決議錯誤和語法報錯的例外不記錄
  7. 用戶手動CANCEL作業,顯示的監控資料可能為0;
  8. 當子陳述句開關打開后,只會記錄下發到DN上執行的子陳述句;
  9. 游標陳述句,當游標并非從快取中讀取資料,而確實觸發陳述句下發到DN上執行的條件下,該游標陳述句會被記錄,并且會進行陳述句、執行計劃增強,但當游標從快取中讀取資料時,不進行記錄;當游標陳述句在匿名塊或者函式中使用時,當游標從DN上讀取較多資料但不完全使用時,無法記錄該游標在DN上的監控資訊,
  10. JDBC執行的帶占位符陳述句,通常會補齊引數內容,但如果引數和原陳述句合起來長度超過64KB,則不記錄引數,或者如果是輕量化陳述句,直接下發到DN上執行,不記錄引數,

4、TopSQL擴展及應用

TopSQL功能是GaussDB(DWS)支持性能問題定位、陳述句劣化分析、審計回溯等重要功能的基石,在此基礎上,內核也拓展出了例外規則等一些高階用法,在日常使用中,用戶也對TopSQL提出了更高的要求,比如記錄子陳述句、記錄陳述句型別、提升算子級別陳述句監控準確性等諸多建議,為此,GaussDB(DWS)團隊會在此基礎上繼續演進,更好的服務用戶,提升用戶滿意度,

5、TopSQL實踐:常見問題定位

總結一下:

  1. 因資料量變化,導致作業執行時間增加,可以分析A2/B1/D1/G1,進而確認作業查詢的資料表是否有明顯的資料量增加;
  2. 因其它并發作業搶占,導致作業排隊,從而導致作業執行時間增加,可以分析A1/B1/D1,進而查看作業執行的同時期是否有大量并發作業在執行;
  3. 因其它作業而產生的CPU搶占,導致作業執行時間增加,可以分析A2/D1/E1,進而查看作業執行的同時期是否有大量并發作業在執行;
  4. 因其它作業而產生的IO搶占,導致作業執行時間增加,可以分析A2/F1,進而查看作業執行的同時期是否有大量并發作業在執行;
  5. I1中有結果情況,可通過提示的資訊進行分析,或者進行SQL自適應診斷相關告警處理,SQL自適應診斷處理方法見:https://support.huaweicloud.com/performance-dws/dws_10_0013.html
  6. 對于enqueue例外排隊的情況H1,用戶可參考:GaussDB(DWS)資源管理排隊原理與問題定位-云社區-華為云 (huaweicloud.com),進行問題排查分析,

值得注意的是,發生資源爭搶時,可能會出現并發癥,即CPU、IO搶占,作業排隊現象都會發生,針對并發癥問題,可以逐步分析解決,比如:

第一步,調整作業執行順序,減少并發作業數量,減少阻塞時間;

第二步,定位出同時段執行的典型計算密集型、存盤密集型作業,先移動到其它時間段執行,減少對本作業的影響;

第三步,在無其他作業明顯干預的情況下,做進一步分析,

6、參考文獻:

  1. GaussDB for DWS 負載管理核心技術解密二: 白話歷史資源監視-云社區-華為云 (huaweicloud.com)
  2. GaussDB(DWS)資源管理排隊原理與問題定位-云社區-華為云 (huaweicloud.com)

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/550730.html

標籤:其他

上一篇:再獲殊榮!華為云GaussDB喜提“科技進步一等獎”

下一篇:返回列表

標籤雲
其他(157758) Python(38083) JavaScript(25379) Java(17984) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7134) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1917) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 帶你掌握數倉的作業級監控TopSQL

    摘要:目前TopSQL功能被用戶廣泛使用,是性能定位、劣化分析、審計回溯等重要的基石,為用戶提供覆寫記憶體、耗時、IO、網路、空間等多方面的監控能力。 本文分享自華為云社區《GaussDB(DWS)監控工具指南(一)作業級監控TopSQL》,作者:幕后小黑爪 。 1、引言: 監控系統是智能化管理和自動 ......

    uj5u.com 2023-04-21 08:49:37 more
  • 再獲殊榮!華為云GaussDB喜提“科技進步一等獎”

    摘要:近日,中國電子學會科學技術獎勵大會頒發了2021-2022年度中國電子學會科學技術獎獲獎專案,華為云主導的“GaussDB智能云原生分布式資料庫”專案榮獲“科技進步一等獎”。 本文分享自華為云社區《再獲殊榮!華為云GaussDB喜提“科技進步一等獎”》,作者:GaussDB 資料庫 。 近日, ......

    uj5u.com 2023-04-21 08:49:28 more
  • 徹底搞懂Redis持久化機制,輕松應對作業面試

    Redis是基于記憶體存盤的資料庫,如果遇到服務重啟或者崩潰,記憶體中的資料將會被清空。所以為了確保資料安全性和可靠性,我們需要將記憶體中的資料持久化到磁盤上。
    持久化不僅可以防止由于系統故障、重啟或者其他原因導致的資料丟失。還可以用于備份、資料恢復和遷移等操作。 ......

    uj5u.com 2023-04-21 08:49:19 more
  • 創建本地yum倉庫

    本文分享自天翼云開發者社區《創建本地yum倉庫》,作者: zzzzgj; 背景 有的部署環境不通外網,但希望繼續使用yum命令下載依賴包而不修改部署腳本邏輯。因此記錄一個本地repo的建立方法。 1、獲取依賴包 # 如在通網的機器上下載openssl-devel所有依賴yumdownloader - ......

    uj5u.com 2023-04-21 08:48:57 more
  • 帶你掌握數倉的作業級監控TopSQL

    摘要:目前TopSQL功能被用戶廣泛使用,是性能定位、劣化分析、審計回溯等重要的基石,為用戶提供覆寫記憶體、耗時、IO、網路、空間等多方面的監控能力。 本文分享自華為云社區《GaussDB(DWS)監控工具指南(一)作業級監控TopSQL》,作者:幕后小黑爪 。 1、引言: 監控系統是智能化管理和自動 ......

    uj5u.com 2023-04-21 08:48:42 more
  • 再獲殊榮!華為云GaussDB喜提“科技進步一等獎”

    摘要:近日,中國電子學會科學技術獎勵大會頒發了2021-2022年度中國電子學會科學技術獎獲獎專案,華為云主導的“GaussDB智能云原生分布式資料庫”專案榮獲“科技進步一等獎”。 本文分享自華為云社區《再獲殊榮!華為云GaussDB喜提“科技進步一等獎”》,作者:GaussDB 資料庫 。 近日, ......

    uj5u.com 2023-04-21 08:48:11 more
  • day03-商家查詢快取02

    功能02-商鋪查詢快取02 知識補充 (1)快取穿透 https://blog.csdn.net/qq_45637260/article/details/125866738 快取穿透(cache penetration)是指用戶訪問的資料既不在快取當中,也不在資料庫中。出于容錯的考慮,如果從底層資料 ......

    uj5u.com 2023-04-21 08:42:08 more
  • 徹底搞懂Redis持久化機制,輕松應對作業面試

    Redis是基于記憶體存盤的資料庫,如果遇到服務重啟或者崩潰,記憶體中的資料將會被清空。所以為了確保資料安全性和可靠性,我們需要將記憶體中的資料持久化到磁盤上。
    持久化不僅可以防止由于系統故障、重啟或者其他原因導致的資料丟失。還可以用于備份、資料恢復和遷移等操作。 ......

    uj5u.com 2023-04-21 08:30:42 more
  • 讀SQL進階教程筆記13_SQL中的分組和層級

    1. 資料分組 1.1. SQL的陳述句中具有分組功能的是GROUP BY和PARTITION BY 1.1.1. 兩者都有數學的理論基礎 1.1.2. 都可以根據指定的列為表分組 1.1.3. 區別僅僅在于,GROUP BY在分組之后會把每個分組聚合成一行資料 1.1.4. GROUP BY的作用是 ......

    uj5u.com 2023-04-21 08:30:22 more
  • MySQL 中常見的幾種高可用架構部署方案

    MySQL 中的集群部署方案 前言 MySQL Replication InnoDB Cluster InnoDB ClusterSet InnoDB ReplicaSet MMM MHA Galera Cluster MySQL Cluster MySQL Fabric 參考 MySQL 中的集群 ......

    uj5u.com 2023-04-21 08:29:58 more