天天看點

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

<a href="https://i.aliyun.com/inviteapply?agent_id=210" target="_blank"><b>我要申請CloudDBA免費體驗</b></a>

    阿裡雲資料庫為何推出<b>CloudDBA</b>?問題診斷(trouble shooting) 和 <b>性能優化</b>(performance tunning) 一直都是資料庫領域的專業問題,需要資深DBA的專業技能才能勝任解決,但這樣的人才是稀缺的,無法及時滿足大部分的企業緊急需求。如果有一款産品能夠在大多數情況下,客戶借助它非常迅速的找出資料庫性能隐患點、排查出問題症結所在,這将無疑協助客戶解決燃眉之急,可以大大降低風險和提高效率。

     先來分析下為什麼資料庫問題診斷和性能優化會非常難?

第一難:擷取資訊難,問題診斷和性能優化都需要依賴于大量的系統資料,甚至是長期的曆史資料,隻有基于完備的資訊才能給出準确的解法。架構一套完善的資料庫監控體系,可不是一件易事,資訊收集的全面深入則就更困難了。

第二難:分析資訊難,需要多年的經驗才能給出準确的解法,也需要多樣的場景才能覆寫比較全面的問題類型。經驗與場景,一不好傳承,二變化較快,三他人了解不易。

第三難:優化手段難,找出問題了,知道怎麼辦了,也并不意味着就能馬上解決問題,甚至有些解法是要深入到資料庫引擎層代碼優化,這可不是一朝一夕就能做好的。

    阿裡雲資料庫CloudDBA 是如何全面解決這三個問題的呢?

我們當然可以自己搭建監控體系,采用通用開源軟體來搭建,但這都意味着投入成本,同時需要對相應的系統比較了解。有些監控系統還無法滿足特定業務需要,為了滿足場景訴求必須要二次開發,企業之間的大量通用重複勞動是肯定存在的。常見的監控如下圖圖一和圖二,圖一是主動拉取監控資訊方式,圖二是由agent定期上報監控資訊形式,一般圖二架構也可以是圖一基礎上增加agent部分。

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結
阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

阿裡雲資料庫監控體系要更深一步,監控内容面更廣,這就要得益于多年阿裡雲資料庫團隊锲而不舍對技術的追求。同時監控手段更先進,核心團隊針對監控特别優化,我們可以擷取完整的資料庫執行語句詳情和資料庫全局快照,而對性能影響微乎其微,最多帶來2%的性能差異。同時我們利用阿裡雲大資料技術能力,實作了冷熱資料的計算加速,大量曆史資料可以快速完成計算工作,可以很快給出分析結果,架構如下圖三,增加了從資料庫到日志檔案的寫入部分強調阿裡雲特有的核心日志優化工作。

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

阿裡雲資料庫上運作着各行各業的資料庫系統,覆寫了海量業務場景,阿裡雲DBA專家多年優化診斷經驗就沉澱在CloudDBA的規則引擎系統上,通過規則引擎可輕松實作一種業務場景的問題、條件與解法的研發。并且我們利用了機器學習能力,自動去抽象各業務的獨有特色,可以很友善的實作獨立業務和普适規則的比對,為業務特有場景輕松推薦最優的優化解法。由于阿裡雲業務的快速發展,目前資料庫執行個體已經超過10萬,規則引擎中的優化模型越來越完備,而差異算法可輕松識别新的業務場景,若真出現沒有遇見過的“遺漏”,我們也可最快相容。

圖四就是CloudDBA的四大引擎工作架構圖,請注意專家知識庫并不是文檔,而是規則引擎工作的原材料,這是阿裡雲資料庫服務海量執行個體的特有資料。

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

四大引擎解釋說明如下:

規則引擎:背景靈活配置各種性能規則,問題、條件和解法,可快速實作新場景的優化方案開發。

性能分析引擎:實時分析潛在性能風險,每種性能都有預先可定制的性能規則。

實時診斷引擎:實時響應使用者診斷具體對象問題,每個資源都有一系列定制化的檢查規則清單。

SQL優化引擎:基于曆史資料,分析SQL、事務、鎖等核心DB資源的性能問題,并給出優化改進建議。

依托于雲資料庫的強大核心,使得在不影響業務的前提下調優與診斷變得非常簡單。雲資料庫天然的彈性能力,無論更新或者調優對使用者影響都極小。阿裡雲資料庫核心團隊,長期對技術孜孜不倦的追求,優化了大量的引擎層代碼,如熱更新、連接配接池、online

DDL優化、熱點行優化、線上限流工具、并行複制、秒殺更新檔等,這使得調優和解決問題變得相當簡單,絕大數情況您隻需要一點就可以解決問題。

CloudDBA根據使用者使用場景,從時間次元将功能切分為兩大塊,分别是一個專注于當下的問題診斷和SQL操作相關功能,另外一個則專注于對曆史資料進行全面分析産出系統性能優化方法功能。但這兩者也不是嚴格的根據時間切割,如SQL操作中對語句性能的分析,也會參考過去曆史性能資料産出最優的優化分析。

問題診斷功能,描述資料庫當下的狀态,性能問題、其他問題都會以使用者一種可見資源表現出來,如CPU、連接配接數等。CloudDBA以這類面向使用者的資源為起點,分析可能引起該問題的原因,分析邏輯在背景做到可配置,開發新代碼會非常的容易,并且分析邏輯會不斷擴張。我們将每個使用者可見資源(如CPU)定義為一個診斷項,每個診斷項在背景規則引擎中會定義一些檢查條目,當診斷時會逐個檢查條目進行診斷,沒有問題就忽略,有問題就會傳回給分析引擎和診斷引擎,這兩個引擎會結合曆史資料給出結果。

第一版CloudDBA問題診斷集合包括 CPU、空間、慢SQL、鎖資訊、熱點表等基礎内容。

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

性能優化功能,使用者可直接通過SQL操作來檢查語句在指定資料庫中執行是否會存在性能隐患,使用者可以檢視執行計劃、診斷SQL擷取優化結果,當然使用者亦可在操作界面直接執行SQL檢視結果。

CloudDBA基于核心優化的SQL審計檔案,可快速查詢指定時間段内的TOP SQL和問題事務。SQL語句可以根據執行次數、執行時間等多種方式排序,事務資訊可找出事務包含的語句、事務執行次數、事務執行時間等資訊,友善快速定位問題事務。

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

最後可基于時間段快速建立一份資料庫診斷報告,報告可下載下傳可分享,包含了資料庫的全面分析,内容豐富如涵蓋了索引、外鍵、死鎖、連接配接、事務、SQL語句、空間、隻讀延遲等資訊。一份報告就是一份資料庫的快照,它涵蓋了問題診斷和性能優化,如下圖中展示了一個問題SQL的報告内容:

阿裡雲資料庫CloudDBA智慧解決資料庫性能優化和問題診斷難題背景CloudDBA優勢CloudDBA功能概述總結

阿裡雲資料庫推出CloudDBA目的是協助客戶定位解決問題,并将大量常見問題的診斷優化自動化,利用機器學習、大資料手段快速複制阿裡雲資深DBA的成熟經驗,服務于雲上企業。最後我們想說,讓使用者更高效使用雲資料庫是我們追求的唯一目标,且我們緻力于将CloudDBA打造為雲資料庫的标準配置,而且我們不斷學習不斷改進永久疊代。

您可能還喜歡

<a href="https://yq.aliyun.com/articles/198102">曆年雙11實戰經曆者:我們是如何做資料庫性能優化及運維-CloudDBA和天象</a>

<a href="https://yq.aliyun.com/articles/218442">CloudDBA初體驗:SQL優化建議</a>